module Crypto.Noise.Types
(
ScrubbedBytes,
NoiseException(..),
Plaintext(..),
convert,
append,
concatSB,
bsToSB,
bsToSB',
sbToBS,
sbToBS',
sbEq
) where
import Control.Exception (Exception)
import Data.ByteArray (ScrubbedBytes, concat, convert, append, eq)
import qualified Data.ByteString as BS (ByteString)
import Data.ByteString.Char8 (pack)
import qualified Data.ByteString.Lazy as BL (ByteString, toStrict, fromStrict)
import Data.String (IsString(..))
import Prelude hiding (concat)
data NoiseException = DecryptionFailure String
| HandshakeStateFailure String
deriving (Show)
instance Exception NoiseException
newtype Plaintext = Plaintext ScrubbedBytes
instance IsString Plaintext where
fromString = Plaintext . convert . pack
concatSB :: [ScrubbedBytes] -> ScrubbedBytes
concatSB = concat
bsToSB :: BL.ByteString -> ScrubbedBytes
bsToSB = convert . BL.toStrict
bsToSB' :: BS.ByteString -> ScrubbedBytes
bsToSB' = convert
sbToBS :: ScrubbedBytes -> BL.ByteString
sbToBS = BL.fromStrict . convert
sbToBS' :: ScrubbedBytes -> BS.ByteString
sbToBS' = convert
sbEq :: ScrubbedBytes -> ScrubbedBytes -> Bool
sbEq = eq