cryptonite 0.7 → 0.8
raw patch · 11 files changed
+304/−208 lines, 11 filesPVP ok
version bump matches the API change (PVP)
API changes (from Hackage documentation)
- Crypto.Cipher.AES: instance BlockCipher AES128
- Crypto.Cipher.AES: instance BlockCipher AES192
- Crypto.Cipher.AES: instance BlockCipher AES256
- Crypto.Cipher.AES: instance BlockCipher128 AES128
- Crypto.Cipher.AES: instance BlockCipher128 AES192
- Crypto.Cipher.AES: instance BlockCipher128 AES256
- Crypto.Cipher.AES: instance Cipher AES128
- Crypto.Cipher.AES: instance Cipher AES192
- Crypto.Cipher.AES: instance Cipher AES256
- Crypto.Cipher.AES: instance NFData AES128
- Crypto.Cipher.AES: instance NFData AES192
- Crypto.Cipher.AES: instance NFData AES256
- Crypto.Cipher.Blowfish: instance BlockCipher Blowfish
- Crypto.Cipher.Blowfish: instance BlockCipher Blowfish128
- Crypto.Cipher.Blowfish: instance BlockCipher Blowfish256
- Crypto.Cipher.Blowfish: instance BlockCipher Blowfish448
- Crypto.Cipher.Blowfish: instance BlockCipher Blowfish64
- Crypto.Cipher.Blowfish: instance Cipher Blowfish
- Crypto.Cipher.Blowfish: instance Cipher Blowfish128
- Crypto.Cipher.Blowfish: instance Cipher Blowfish256
- Crypto.Cipher.Blowfish: instance Cipher Blowfish448
- Crypto.Cipher.Blowfish: instance Cipher Blowfish64
- Crypto.Cipher.Blowfish: instance NFData Blowfish
- Crypto.Cipher.Blowfish: instance NFData Blowfish128
- Crypto.Cipher.Blowfish: instance NFData Blowfish256
- Crypto.Cipher.Blowfish: instance NFData Blowfish448
- Crypto.Cipher.Blowfish: instance NFData Blowfish64
- Crypto.Cipher.Camellia: instance BlockCipher Camellia128
- Crypto.Cipher.Camellia: instance Cipher Camellia128
- Crypto.Cipher.ChaCha: instance NFData State
- Crypto.Cipher.ChaCha: instance NFData StateSimple
- Crypto.Cipher.DES: instance BlockCipher DES
- Crypto.Cipher.DES: instance Cipher DES
- Crypto.Cipher.DES: instance Eq DES
- Crypto.Cipher.RC4: instance ByteArrayAccess State
- Crypto.Cipher.RC4: instance NFData State
- Crypto.Cipher.Salsa: instance NFData State
- Crypto.Cipher.TripleDES: instance BlockCipher DES_EDE2
- Crypto.Cipher.TripleDES: instance BlockCipher DES_EDE3
- Crypto.Cipher.TripleDES: instance BlockCipher DES_EEE2
- Crypto.Cipher.TripleDES: instance BlockCipher DES_EEE3
- Crypto.Cipher.TripleDES: instance Cipher DES_EDE2
- Crypto.Cipher.TripleDES: instance Cipher DES_EDE3
- Crypto.Cipher.TripleDES: instance Cipher DES_EEE2
- Crypto.Cipher.TripleDES: instance Cipher DES_EEE3
- Crypto.Cipher.TripleDES: instance Eq DES_EDE2
- Crypto.Cipher.TripleDES: instance Eq DES_EDE3
- Crypto.Cipher.TripleDES: instance Eq DES_EEE2
- Crypto.Cipher.TripleDES: instance Eq DES_EEE3
- Crypto.Cipher.Types: aeadImplAppendHeader :: AEADModeImpl st -> forall ba. ByteArrayAccess ba => st -> ba -> st
- Crypto.Cipher.Types: aeadImplDecrypt :: AEADModeImpl st -> forall ba. ByteArray ba => st -> ba -> (ba, st)
- Crypto.Cipher.Types: aeadImplEncrypt :: AEADModeImpl st -> forall ba. ByteArray ba => st -> ba -> (ba, st)
- Crypto.Cipher.Types: aeadImplFinalize :: AEADModeImpl st -> st -> Int -> AuthTag
- Crypto.Cipher.Types: aeadModeImpl :: AEAD cipher -> AEADModeImpl st
- Crypto.Cipher.Types: aeadState :: AEAD cipher -> st
- Crypto.Cipher.Types: unAuthTag :: AuthTag -> Bytes
- Crypto.Data.Padding: instance Eq Format
- Crypto.Data.Padding: instance Show Format
- Crypto.Hash.IO: instance ByteArrayAccess (MutableContext a)
- Crypto.KDF.PBKDF2: iterCounts :: Parameters -> Int
- Crypto.KDF.PBKDF2: outputLength :: Parameters -> Int
- Crypto.KDF.Scrypt: n :: Parameters -> Word64
- Crypto.KDF.Scrypt: outputLength :: Parameters -> Int
- Crypto.KDF.Scrypt: p :: Parameters -> Int
- Crypto.KDF.Scrypt: r :: Parameters -> Int
- Crypto.MAC.HMAC: hmacGetDigest :: HMAC a -> Digest a
- Crypto.MAC.HMAC: instance ByteArrayAccess (HMAC a)
- Crypto.MAC.HMAC: instance Eq (HMAC a)
- Crypto.MAC.Poly1305: instance ByteArrayAccess Auth
- Crypto.MAC.Poly1305: instance ByteArrayAccess State
- Crypto.MAC.Poly1305: instance Eq Auth
- Crypto.MAC.Poly1305: instance NFData Auth
- Crypto.Number.Generate: instance Eq GenTopPolicy
- Crypto.Number.Generate: instance Show GenTopPolicy
- Crypto.Number.ModArithmetic: instance Exception CoprimesAssertionError
- Crypto.Number.ModArithmetic: instance Show CoprimesAssertionError
- Crypto.Number.ModArithmetic: instance Typeable CoprimesAssertionError
- Crypto.PubKey.Curve25519: instance ByteArrayAccess DhSecret
- Crypto.PubKey.Curve25519: instance ByteArrayAccess PublicKey
- Crypto.PubKey.Curve25519: instance ByteArrayAccess SecretKey
- Crypto.PubKey.Curve25519: instance Eq DhSecret
- Crypto.PubKey.Curve25519: instance Eq PublicKey
- Crypto.PubKey.Curve25519: instance Eq SecretKey
- Crypto.PubKey.Curve25519: instance NFData DhSecret
- Crypto.PubKey.Curve25519: instance NFData PublicKey
- Crypto.PubKey.Curve25519: instance NFData SecretKey
- Crypto.PubKey.Curve25519: instance Show DhSecret
- Crypto.PubKey.Curve25519: instance Show PublicKey
- Crypto.PubKey.Curve25519: instance Show SecretKey
- Crypto.PubKey.DH: instance Data Params
- Crypto.PubKey.DH: instance Enum PrivateNumber
- Crypto.PubKey.DH: instance Enum PublicNumber
- Crypto.PubKey.DH: instance Enum SharedKey
- Crypto.PubKey.DH: instance Eq Params
- Crypto.PubKey.DH: instance Eq PrivateNumber
- Crypto.PubKey.DH: instance Eq PublicNumber
- Crypto.PubKey.DH: instance Eq SharedKey
- Crypto.PubKey.DH: instance Num PrivateNumber
- Crypto.PubKey.DH: instance Num PublicNumber
- Crypto.PubKey.DH: instance Num SharedKey
- Crypto.PubKey.DH: instance Ord PrivateNumber
- Crypto.PubKey.DH: instance Ord PublicNumber
- Crypto.PubKey.DH: instance Ord SharedKey
- Crypto.PubKey.DH: instance Read Params
- Crypto.PubKey.DH: instance Read PrivateNumber
- Crypto.PubKey.DH: instance Read PublicNumber
- Crypto.PubKey.DH: instance Read SharedKey
- Crypto.PubKey.DH: instance Real PrivateNumber
- Crypto.PubKey.DH: instance Real PublicNumber
- Crypto.PubKey.DH: instance Real SharedKey
- Crypto.PubKey.DH: instance Show Params
- Crypto.PubKey.DH: instance Show PrivateNumber
- Crypto.PubKey.DH: instance Show PublicNumber
- Crypto.PubKey.DH: instance Show SharedKey
- Crypto.PubKey.DH: instance Typeable Params
- Crypto.PubKey.DH: params_g :: Params -> Integer
- Crypto.PubKey.DH: params_p :: Params -> Integer
- Crypto.PubKey.DSA: instance Data KeyPair
- Crypto.PubKey.DSA: instance Data Params
- Crypto.PubKey.DSA: instance Data PrivateKey
- Crypto.PubKey.DSA: instance Data PublicKey
- Crypto.PubKey.DSA: instance Data Signature
- Crypto.PubKey.DSA: instance Eq KeyPair
- Crypto.PubKey.DSA: instance Eq Params
- Crypto.PubKey.DSA: instance Eq PrivateKey
- Crypto.PubKey.DSA: instance Eq PublicKey
- Crypto.PubKey.DSA: instance Eq Signature
- Crypto.PubKey.DSA: instance NFData KeyPair
- Crypto.PubKey.DSA: instance NFData Params
- Crypto.PubKey.DSA: instance NFData PrivateKey
- Crypto.PubKey.DSA: instance NFData PublicKey
- Crypto.PubKey.DSA: instance NFData Signature
- Crypto.PubKey.DSA: instance Read KeyPair
- Crypto.PubKey.DSA: instance Read Params
- Crypto.PubKey.DSA: instance Read PrivateKey
- Crypto.PubKey.DSA: instance Read PublicKey
- Crypto.PubKey.DSA: instance Read Signature
- Crypto.PubKey.DSA: instance Show KeyPair
- Crypto.PubKey.DSA: instance Show Params
- Crypto.PubKey.DSA: instance Show PrivateKey
- Crypto.PubKey.DSA: instance Show PublicKey
- Crypto.PubKey.DSA: instance Show Signature
- Crypto.PubKey.DSA: instance Typeable KeyPair
- Crypto.PubKey.DSA: instance Typeable Params
- Crypto.PubKey.DSA: instance Typeable PrivateKey
- Crypto.PubKey.DSA: instance Typeable PublicKey
- Crypto.PubKey.DSA: instance Typeable Signature
- Crypto.PubKey.DSA: params_g :: Params -> Integer
- Crypto.PubKey.DSA: params_p :: Params -> Integer
- Crypto.PubKey.DSA: params_q :: Params -> Integer
- Crypto.PubKey.DSA: private_params :: PrivateKey -> Params
- Crypto.PubKey.DSA: private_x :: PrivateKey -> PrivateNumber
- Crypto.PubKey.DSA: public_params :: PublicKey -> Params
- Crypto.PubKey.DSA: public_y :: PublicKey -> PublicNumber
- Crypto.PubKey.DSA: sign_r :: Signature -> Integer
- Crypto.PubKey.DSA: sign_s :: Signature -> Integer
- Crypto.PubKey.ECC.ECDSA: instance Data KeyPair
- Crypto.PubKey.ECC.ECDSA: instance Data PrivateKey
- Crypto.PubKey.ECC.ECDSA: instance Data PublicKey
- Crypto.PubKey.ECC.ECDSA: instance Data Signature
- Crypto.PubKey.ECC.ECDSA: instance Eq KeyPair
- Crypto.PubKey.ECC.ECDSA: instance Eq PrivateKey
- Crypto.PubKey.ECC.ECDSA: instance Eq PublicKey
- Crypto.PubKey.ECC.ECDSA: instance Eq Signature
- Crypto.PubKey.ECC.ECDSA: instance Read KeyPair
- Crypto.PubKey.ECC.ECDSA: instance Read PrivateKey
- Crypto.PubKey.ECC.ECDSA: instance Read PublicKey
- Crypto.PubKey.ECC.ECDSA: instance Read Signature
- Crypto.PubKey.ECC.ECDSA: instance Show KeyPair
- Crypto.PubKey.ECC.ECDSA: instance Show PrivateKey
- Crypto.PubKey.ECC.ECDSA: instance Show PublicKey
- Crypto.PubKey.ECC.ECDSA: instance Show Signature
- Crypto.PubKey.ECC.ECDSA: instance Typeable KeyPair
- Crypto.PubKey.ECC.ECDSA: instance Typeable PrivateKey
- Crypto.PubKey.ECC.ECDSA: instance Typeable PublicKey
- Crypto.PubKey.ECC.ECDSA: instance Typeable Signature
- Crypto.PubKey.ECC.ECDSA: private_curve :: PrivateKey -> Curve
- Crypto.PubKey.ECC.ECDSA: private_d :: PrivateKey -> PrivateNumber
- Crypto.PubKey.ECC.ECDSA: public_curve :: PublicKey -> Curve
- Crypto.PubKey.ECC.ECDSA: public_q :: PublicKey -> PublicPoint
- Crypto.PubKey.ECC.ECDSA: sign_r :: Signature -> Integer
- Crypto.PubKey.ECC.ECDSA: sign_s :: Signature -> Integer
- Crypto.PubKey.ECC.P256: instance ByteArrayAccess Scalar
- Crypto.PubKey.ECC.P256: instance Eq Point
- Crypto.PubKey.ECC.P256: instance Eq Scalar
- Crypto.PubKey.ECC.P256: instance Show Point
- Crypto.PubKey.ECC.Types: ecc_a :: CurveCommon -> Integer
- Crypto.PubKey.ECC.Types: ecc_b :: CurveCommon -> Integer
- Crypto.PubKey.ECC.Types: ecc_g :: CurveCommon -> Point
- Crypto.PubKey.ECC.Types: ecc_h :: CurveCommon -> Integer
- Crypto.PubKey.ECC.Types: ecc_n :: CurveCommon -> Integer
- Crypto.PubKey.ECC.Types: instance Data Curve
- Crypto.PubKey.ECC.Types: instance Data CurveBinary
- Crypto.PubKey.ECC.Types: instance Data CurveCommon
- Crypto.PubKey.ECC.Types: instance Data CurveName
- Crypto.PubKey.ECC.Types: instance Data CurvePrime
- Crypto.PubKey.ECC.Types: instance Data Point
- Crypto.PubKey.ECC.Types: instance Enum CurveName
- Crypto.PubKey.ECC.Types: instance Eq Curve
- Crypto.PubKey.ECC.Types: instance Eq CurveBinary
- Crypto.PubKey.ECC.Types: instance Eq CurveCommon
- Crypto.PubKey.ECC.Types: instance Eq CurveName
- Crypto.PubKey.ECC.Types: instance Eq CurvePrime
- Crypto.PubKey.ECC.Types: instance Eq Point
- Crypto.PubKey.ECC.Types: instance NFData CurveBinary
- Crypto.PubKey.ECC.Types: instance NFData Point
- Crypto.PubKey.ECC.Types: instance Ord CurveName
- Crypto.PubKey.ECC.Types: instance Read Curve
- Crypto.PubKey.ECC.Types: instance Read CurveBinary
- Crypto.PubKey.ECC.Types: instance Read CurveCommon
- Crypto.PubKey.ECC.Types: instance Read CurveName
- Crypto.PubKey.ECC.Types: instance Read CurvePrime
- Crypto.PubKey.ECC.Types: instance Read Point
- Crypto.PubKey.ECC.Types: instance Show Curve
- Crypto.PubKey.ECC.Types: instance Show CurveBinary
- Crypto.PubKey.ECC.Types: instance Show CurveCommon
- Crypto.PubKey.ECC.Types: instance Show CurveName
- Crypto.PubKey.ECC.Types: instance Show CurvePrime
- Crypto.PubKey.ECC.Types: instance Show Point
- Crypto.PubKey.ECC.Types: instance Typeable Curve
- Crypto.PubKey.ECC.Types: instance Typeable CurveBinary
- Crypto.PubKey.ECC.Types: instance Typeable CurveCommon
- Crypto.PubKey.ECC.Types: instance Typeable CurveName
- Crypto.PubKey.ECC.Types: instance Typeable CurvePrime
- Crypto.PubKey.ECC.Types: instance Typeable Point
- Crypto.PubKey.Ed25519: instance ByteArrayAccess PublicKey
- Crypto.PubKey.Ed25519: instance ByteArrayAccess SecretKey
- Crypto.PubKey.Ed25519: instance ByteArrayAccess Signature
- Crypto.PubKey.Ed25519: instance Eq PublicKey
- Crypto.PubKey.Ed25519: instance Eq SecretKey
- Crypto.PubKey.Ed25519: instance Eq Signature
- Crypto.PubKey.Ed25519: instance NFData PublicKey
- Crypto.PubKey.Ed25519: instance NFData SecretKey
- Crypto.PubKey.Ed25519: instance NFData Signature
- Crypto.PubKey.Ed25519: instance Show PublicKey
- Crypto.PubKey.Ed25519: instance Show Signature
- Crypto.PubKey.RSA: private_d :: PrivateKey -> Integer
- Crypto.PubKey.RSA: private_dP :: PrivateKey -> Integer
- Crypto.PubKey.RSA: private_dQ :: PrivateKey -> Integer
- Crypto.PubKey.RSA: private_p :: PrivateKey -> Integer
- Crypto.PubKey.RSA: private_pub :: PrivateKey -> PublicKey
- Crypto.PubKey.RSA: private_q :: PrivateKey -> Integer
- Crypto.PubKey.RSA: private_qinv :: PrivateKey -> Integer
- Crypto.PubKey.RSA: public_e :: PublicKey -> Integer
- Crypto.PubKey.RSA: public_n :: PublicKey -> Integer
- Crypto.PubKey.RSA: public_size :: PublicKey -> Int
- Crypto.PubKey.RSA.OAEP: oaepHash :: OAEPParams hash seed output -> hash
- Crypto.PubKey.RSA.OAEP: oaepLabel :: OAEPParams hash seed output -> Maybe ByteString
- Crypto.PubKey.RSA.OAEP: oaepMaskGenAlg :: OAEPParams hash seed output -> MaskGenAlgorithm seed output
- Crypto.PubKey.RSA.PKCS15: instance HashAlgorithmASN1 MD2
- Crypto.PubKey.RSA.PKCS15: instance HashAlgorithmASN1 MD5
- Crypto.PubKey.RSA.PKCS15: instance HashAlgorithmASN1 RIPEMD160
- Crypto.PubKey.RSA.PKCS15: instance HashAlgorithmASN1 SHA1
- Crypto.PubKey.RSA.PKCS15: instance HashAlgorithmASN1 SHA224
- Crypto.PubKey.RSA.PKCS15: instance HashAlgorithmASN1 SHA256
- Crypto.PubKey.RSA.PKCS15: instance HashAlgorithmASN1 SHA384
- Crypto.PubKey.RSA.PKCS15: instance HashAlgorithmASN1 SHA512
- Crypto.PubKey.RSA.PKCS15: instance HashAlgorithmASN1 SHA512t_224
- Crypto.PubKey.RSA.PKCS15: instance HashAlgorithmASN1 SHA512t_256
- Crypto.PubKey.RSA.PSS: pssHash :: PSSParams hash seed output -> hash
- Crypto.PubKey.RSA.PSS: pssMaskGenAlg :: PSSParams hash seed output -> MaskGenAlgorithm seed output
- Crypto.PubKey.RSA.PSS: pssSaltLength :: PSSParams hash seed output -> Int
- Crypto.PubKey.RSA.PSS: pssTrailerField :: PSSParams hash seed output -> Word8
- Crypto.PubKey.RSA.Types: instance Data KeyPair
- Crypto.PubKey.RSA.Types: instance Data PrivateKey
- Crypto.PubKey.RSA.Types: instance Data PublicKey
- Crypto.PubKey.RSA.Types: instance Eq Blinder
- Crypto.PubKey.RSA.Types: instance Eq Error
- Crypto.PubKey.RSA.Types: instance Eq KeyPair
- Crypto.PubKey.RSA.Types: instance Eq PrivateKey
- Crypto.PubKey.RSA.Types: instance Eq PublicKey
- Crypto.PubKey.RSA.Types: instance NFData KeyPair
- Crypto.PubKey.RSA.Types: instance NFData PrivateKey
- Crypto.PubKey.RSA.Types: instance NFData PublicKey
- Crypto.PubKey.RSA.Types: instance Read KeyPair
- Crypto.PubKey.RSA.Types: instance Read PrivateKey
- Crypto.PubKey.RSA.Types: instance Read PublicKey
- Crypto.PubKey.RSA.Types: instance Show Blinder
- Crypto.PubKey.RSA.Types: instance Show Error
- Crypto.PubKey.RSA.Types: instance Show KeyPair
- Crypto.PubKey.RSA.Types: instance Show PrivateKey
- Crypto.PubKey.RSA.Types: instance Show PublicKey
- Crypto.PubKey.RSA.Types: instance Typeable KeyPair
- Crypto.PubKey.RSA.Types: instance Typeable PrivateKey
- Crypto.PubKey.RSA.Types: instance Typeable PublicKey
- Crypto.PubKey.RSA.Types: private_d :: PrivateKey -> Integer
- Crypto.PubKey.RSA.Types: private_dP :: PrivateKey -> Integer
- Crypto.PubKey.RSA.Types: private_dQ :: PrivateKey -> Integer
- Crypto.PubKey.RSA.Types: private_p :: PrivateKey -> Integer
- Crypto.PubKey.RSA.Types: private_pub :: PrivateKey -> PublicKey
- Crypto.PubKey.RSA.Types: private_q :: PrivateKey -> Integer
- Crypto.PubKey.RSA.Types: private_qinv :: PrivateKey -> Integer
- Crypto.PubKey.RSA.Types: public_e :: PublicKey -> Integer
- Crypto.PubKey.RSA.Types: public_n :: PublicKey -> Integer
- Crypto.PubKey.RSA.Types: public_size :: PublicKey -> Int
- Crypto.Random.Types: instance DRG gen => Applicative (MonadPseudoRandom gen)
- Crypto.Random.Types: instance DRG gen => Functor (MonadPseudoRandom gen)
- Crypto.Random.Types: instance DRG gen => Monad (MonadPseudoRandom gen)
- Crypto.Random.Types: instance DRG gen => MonadRandom (MonadPseudoRandom gen)
- Crypto.Random.Types: instance MonadRandom IO
+ Crypto.Cipher.AES: instance Control.DeepSeq.NFData Crypto.Cipher.AES.AES128
+ Crypto.Cipher.AES: instance Control.DeepSeq.NFData Crypto.Cipher.AES.AES192
+ Crypto.Cipher.AES: instance Control.DeepSeq.NFData Crypto.Cipher.AES.AES256
+ Crypto.Cipher.AES: instance Crypto.Cipher.Types.Base.Cipher Crypto.Cipher.AES.AES128
+ Crypto.Cipher.AES: instance Crypto.Cipher.Types.Base.Cipher Crypto.Cipher.AES.AES192
+ Crypto.Cipher.AES: instance Crypto.Cipher.Types.Base.Cipher Crypto.Cipher.AES.AES256
+ Crypto.Cipher.AES: instance Crypto.Cipher.Types.Block.BlockCipher Crypto.Cipher.AES.AES128
+ Crypto.Cipher.AES: instance Crypto.Cipher.Types.Block.BlockCipher Crypto.Cipher.AES.AES192
+ Crypto.Cipher.AES: instance Crypto.Cipher.Types.Block.BlockCipher Crypto.Cipher.AES.AES256
+ Crypto.Cipher.AES: instance Crypto.Cipher.Types.Block.BlockCipher128 Crypto.Cipher.AES.AES128
+ Crypto.Cipher.AES: instance Crypto.Cipher.Types.Block.BlockCipher128 Crypto.Cipher.AES.AES192
+ Crypto.Cipher.AES: instance Crypto.Cipher.Types.Block.BlockCipher128 Crypto.Cipher.AES.AES256
+ Crypto.Cipher.Blowfish: instance Control.DeepSeq.NFData Crypto.Cipher.Blowfish.Blowfish
+ Crypto.Cipher.Blowfish: instance Control.DeepSeq.NFData Crypto.Cipher.Blowfish.Blowfish128
+ Crypto.Cipher.Blowfish: instance Control.DeepSeq.NFData Crypto.Cipher.Blowfish.Blowfish256
+ Crypto.Cipher.Blowfish: instance Control.DeepSeq.NFData Crypto.Cipher.Blowfish.Blowfish448
+ Crypto.Cipher.Blowfish: instance Control.DeepSeq.NFData Crypto.Cipher.Blowfish.Blowfish64
+ Crypto.Cipher.Blowfish: instance Crypto.Cipher.Types.Base.Cipher Crypto.Cipher.Blowfish.Blowfish
+ Crypto.Cipher.Blowfish: instance Crypto.Cipher.Types.Base.Cipher Crypto.Cipher.Blowfish.Blowfish128
+ Crypto.Cipher.Blowfish: instance Crypto.Cipher.Types.Base.Cipher Crypto.Cipher.Blowfish.Blowfish256
+ Crypto.Cipher.Blowfish: instance Crypto.Cipher.Types.Base.Cipher Crypto.Cipher.Blowfish.Blowfish448
+ Crypto.Cipher.Blowfish: instance Crypto.Cipher.Types.Base.Cipher Crypto.Cipher.Blowfish.Blowfish64
+ Crypto.Cipher.Blowfish: instance Crypto.Cipher.Types.Block.BlockCipher Crypto.Cipher.Blowfish.Blowfish
+ Crypto.Cipher.Blowfish: instance Crypto.Cipher.Types.Block.BlockCipher Crypto.Cipher.Blowfish.Blowfish128
+ Crypto.Cipher.Blowfish: instance Crypto.Cipher.Types.Block.BlockCipher Crypto.Cipher.Blowfish.Blowfish256
+ Crypto.Cipher.Blowfish: instance Crypto.Cipher.Types.Block.BlockCipher Crypto.Cipher.Blowfish.Blowfish448
+ Crypto.Cipher.Blowfish: instance Crypto.Cipher.Types.Block.BlockCipher Crypto.Cipher.Blowfish.Blowfish64
+ Crypto.Cipher.Camellia: instance Crypto.Cipher.Types.Base.Cipher Crypto.Cipher.Camellia.Camellia128
+ Crypto.Cipher.Camellia: instance Crypto.Cipher.Types.Block.BlockCipher Crypto.Cipher.Camellia.Camellia128
+ Crypto.Cipher.ChaCha: instance Control.DeepSeq.NFData Crypto.Cipher.ChaCha.State
+ Crypto.Cipher.ChaCha: instance Control.DeepSeq.NFData Crypto.Cipher.ChaCha.StateSimple
+ Crypto.Cipher.ChaChaPoly1305: incrementNonce :: Nonce -> Nonce
+ Crypto.Cipher.ChaChaPoly1305: instance Data.ByteArray.Types.ByteArrayAccess Crypto.Cipher.ChaChaPoly1305.Nonce
+ Crypto.Cipher.DES: instance Crypto.Cipher.Types.Base.Cipher Crypto.Cipher.DES.DES
+ Crypto.Cipher.DES: instance Crypto.Cipher.Types.Block.BlockCipher Crypto.Cipher.DES.DES
+ Crypto.Cipher.DES: instance GHC.Classes.Eq Crypto.Cipher.DES.DES
+ Crypto.Cipher.RC4: instance Control.DeepSeq.NFData Crypto.Cipher.RC4.State
+ Crypto.Cipher.RC4: instance Data.ByteArray.Types.ByteArrayAccess Crypto.Cipher.RC4.State
+ Crypto.Cipher.Salsa: instance Control.DeepSeq.NFData Crypto.Cipher.Salsa.State
+ Crypto.Cipher.TripleDES: instance Crypto.Cipher.Types.Base.Cipher Crypto.Cipher.TripleDES.DES_EDE2
+ Crypto.Cipher.TripleDES: instance Crypto.Cipher.Types.Base.Cipher Crypto.Cipher.TripleDES.DES_EDE3
+ Crypto.Cipher.TripleDES: instance Crypto.Cipher.Types.Base.Cipher Crypto.Cipher.TripleDES.DES_EEE2
+ Crypto.Cipher.TripleDES: instance Crypto.Cipher.Types.Base.Cipher Crypto.Cipher.TripleDES.DES_EEE3
+ Crypto.Cipher.TripleDES: instance Crypto.Cipher.Types.Block.BlockCipher Crypto.Cipher.TripleDES.DES_EDE2
+ Crypto.Cipher.TripleDES: instance Crypto.Cipher.Types.Block.BlockCipher Crypto.Cipher.TripleDES.DES_EDE3
+ Crypto.Cipher.TripleDES: instance Crypto.Cipher.Types.Block.BlockCipher Crypto.Cipher.TripleDES.DES_EEE2
+ Crypto.Cipher.TripleDES: instance Crypto.Cipher.Types.Block.BlockCipher Crypto.Cipher.TripleDES.DES_EEE3
+ Crypto.Cipher.TripleDES: instance GHC.Classes.Eq Crypto.Cipher.TripleDES.DES_EDE2
+ Crypto.Cipher.TripleDES: instance GHC.Classes.Eq Crypto.Cipher.TripleDES.DES_EDE3
+ Crypto.Cipher.TripleDES: instance GHC.Classes.Eq Crypto.Cipher.TripleDES.DES_EEE2
+ Crypto.Cipher.TripleDES: instance GHC.Classes.Eq Crypto.Cipher.TripleDES.DES_EEE3
+ Crypto.Cipher.Types: [aeadImplAppendHeader] :: AEADModeImpl st -> forall ba. ByteArrayAccess ba => st -> ba -> st
+ Crypto.Cipher.Types: [aeadImplDecrypt] :: AEADModeImpl st -> forall ba. ByteArray ba => st -> ba -> (ba, st)
+ Crypto.Cipher.Types: [aeadImplEncrypt] :: AEADModeImpl st -> forall ba. ByteArray ba => st -> ba -> (ba, st)
+ Crypto.Cipher.Types: [aeadImplFinalize] :: AEADModeImpl st -> st -> Int -> AuthTag
+ Crypto.Cipher.Types: [aeadModeImpl] :: AEAD cipher -> AEADModeImpl st
+ Crypto.Cipher.Types: [aeadState] :: AEAD cipher -> st
+ Crypto.Cipher.Types: [unAuthTag] :: AuthTag -> Bytes
+ Crypto.Data.Padding: instance GHC.Classes.Eq Crypto.Data.Padding.Format
+ Crypto.Data.Padding: instance GHC.Show.Show Crypto.Data.Padding.Format
+ Crypto.Hash.IO: instance Data.ByteArray.Types.ByteArrayAccess (Crypto.Hash.IO.MutableContext a)
+ Crypto.KDF.PBKDF2: [iterCounts] :: Parameters -> Int
+ Crypto.KDF.PBKDF2: [outputLength] :: Parameters -> Int
+ Crypto.KDF.Scrypt: [n] :: Parameters -> Word64
+ Crypto.KDF.Scrypt: [outputLength] :: Parameters -> Int
+ Crypto.KDF.Scrypt: [p] :: Parameters -> Int
+ Crypto.KDF.Scrypt: [r] :: Parameters -> Int
+ Crypto.MAC.HMAC: [hmacGetDigest] :: HMAC a -> Digest a
+ Crypto.MAC.HMAC: instance Data.ByteArray.Types.ByteArrayAccess (Crypto.MAC.HMAC.HMAC a)
+ Crypto.MAC.HMAC: instance GHC.Classes.Eq (Crypto.MAC.HMAC.HMAC a)
+ Crypto.MAC.Poly1305: instance Control.DeepSeq.NFData Crypto.MAC.Poly1305.Auth
+ Crypto.MAC.Poly1305: instance Data.ByteArray.Types.ByteArrayAccess Crypto.MAC.Poly1305.Auth
+ Crypto.MAC.Poly1305: instance Data.ByteArray.Types.ByteArrayAccess Crypto.MAC.Poly1305.State
+ Crypto.MAC.Poly1305: instance GHC.Classes.Eq Crypto.MAC.Poly1305.Auth
+ Crypto.Number.Generate: instance GHC.Classes.Eq Crypto.Number.Generate.GenTopPolicy
+ Crypto.Number.Generate: instance GHC.Show.Show Crypto.Number.Generate.GenTopPolicy
+ Crypto.Number.ModArithmetic: instance GHC.Exception.Exception Crypto.Number.ModArithmetic.CoprimesAssertionError
+ Crypto.Number.ModArithmetic: instance GHC.Show.Show Crypto.Number.ModArithmetic.CoprimesAssertionError
+ Crypto.PubKey.Curve25519: instance Control.DeepSeq.NFData Crypto.PubKey.Curve25519.DhSecret
+ Crypto.PubKey.Curve25519: instance Control.DeepSeq.NFData Crypto.PubKey.Curve25519.PublicKey
+ Crypto.PubKey.Curve25519: instance Control.DeepSeq.NFData Crypto.PubKey.Curve25519.SecretKey
+ Crypto.PubKey.Curve25519: instance Data.ByteArray.Types.ByteArrayAccess Crypto.PubKey.Curve25519.DhSecret
+ Crypto.PubKey.Curve25519: instance Data.ByteArray.Types.ByteArrayAccess Crypto.PubKey.Curve25519.PublicKey
+ Crypto.PubKey.Curve25519: instance Data.ByteArray.Types.ByteArrayAccess Crypto.PubKey.Curve25519.SecretKey
+ Crypto.PubKey.Curve25519: instance GHC.Classes.Eq Crypto.PubKey.Curve25519.DhSecret
+ Crypto.PubKey.Curve25519: instance GHC.Classes.Eq Crypto.PubKey.Curve25519.PublicKey
+ Crypto.PubKey.Curve25519: instance GHC.Classes.Eq Crypto.PubKey.Curve25519.SecretKey
+ Crypto.PubKey.Curve25519: instance GHC.Show.Show Crypto.PubKey.Curve25519.DhSecret
+ Crypto.PubKey.Curve25519: instance GHC.Show.Show Crypto.PubKey.Curve25519.PublicKey
+ Crypto.PubKey.Curve25519: instance GHC.Show.Show Crypto.PubKey.Curve25519.SecretKey
+ Crypto.PubKey.DH: [params_g] :: Params -> Integer
+ Crypto.PubKey.DH: [params_p] :: Params -> Integer
+ Crypto.PubKey.DH: instance Data.Data.Data Crypto.PubKey.DH.Params
+ Crypto.PubKey.DH: instance GHC.Classes.Eq Crypto.PubKey.DH.Params
+ Crypto.PubKey.DH: instance GHC.Classes.Eq Crypto.PubKey.DH.PrivateNumber
+ Crypto.PubKey.DH: instance GHC.Classes.Eq Crypto.PubKey.DH.PublicNumber
+ Crypto.PubKey.DH: instance GHC.Classes.Eq Crypto.PubKey.DH.SharedKey
+ Crypto.PubKey.DH: instance GHC.Classes.Ord Crypto.PubKey.DH.PrivateNumber
+ Crypto.PubKey.DH: instance GHC.Classes.Ord Crypto.PubKey.DH.PublicNumber
+ Crypto.PubKey.DH: instance GHC.Classes.Ord Crypto.PubKey.DH.SharedKey
+ Crypto.PubKey.DH: instance GHC.Enum.Enum Crypto.PubKey.DH.PrivateNumber
+ Crypto.PubKey.DH: instance GHC.Enum.Enum Crypto.PubKey.DH.PublicNumber
+ Crypto.PubKey.DH: instance GHC.Enum.Enum Crypto.PubKey.DH.SharedKey
+ Crypto.PubKey.DH: instance GHC.Num.Num Crypto.PubKey.DH.PrivateNumber
+ Crypto.PubKey.DH: instance GHC.Num.Num Crypto.PubKey.DH.PublicNumber
+ Crypto.PubKey.DH: instance GHC.Num.Num Crypto.PubKey.DH.SharedKey
+ Crypto.PubKey.DH: instance GHC.Read.Read Crypto.PubKey.DH.Params
+ Crypto.PubKey.DH: instance GHC.Read.Read Crypto.PubKey.DH.PrivateNumber
+ Crypto.PubKey.DH: instance GHC.Read.Read Crypto.PubKey.DH.PublicNumber
+ Crypto.PubKey.DH: instance GHC.Read.Read Crypto.PubKey.DH.SharedKey
+ Crypto.PubKey.DH: instance GHC.Real.Real Crypto.PubKey.DH.PrivateNumber
+ Crypto.PubKey.DH: instance GHC.Real.Real Crypto.PubKey.DH.PublicNumber
+ Crypto.PubKey.DH: instance GHC.Real.Real Crypto.PubKey.DH.SharedKey
+ Crypto.PubKey.DH: instance GHC.Show.Show Crypto.PubKey.DH.Params
+ Crypto.PubKey.DH: instance GHC.Show.Show Crypto.PubKey.DH.PrivateNumber
+ Crypto.PubKey.DH: instance GHC.Show.Show Crypto.PubKey.DH.PublicNumber
+ Crypto.PubKey.DH: instance GHC.Show.Show Crypto.PubKey.DH.SharedKey
+ Crypto.PubKey.DSA: [params_g] :: Params -> Integer
+ Crypto.PubKey.DSA: [params_p] :: Params -> Integer
+ Crypto.PubKey.DSA: [params_q] :: Params -> Integer
+ Crypto.PubKey.DSA: [private_params] :: PrivateKey -> Params
+ Crypto.PubKey.DSA: [private_x] :: PrivateKey -> PrivateNumber
+ Crypto.PubKey.DSA: [public_params] :: PublicKey -> Params
+ Crypto.PubKey.DSA: [public_y] :: PublicKey -> PublicNumber
+ Crypto.PubKey.DSA: [sign_r] :: Signature -> Integer
+ Crypto.PubKey.DSA: [sign_s] :: Signature -> Integer
+ Crypto.PubKey.DSA: instance Control.DeepSeq.NFData Crypto.PubKey.DSA.KeyPair
+ Crypto.PubKey.DSA: instance Control.DeepSeq.NFData Crypto.PubKey.DSA.Params
+ Crypto.PubKey.DSA: instance Control.DeepSeq.NFData Crypto.PubKey.DSA.PrivateKey
+ Crypto.PubKey.DSA: instance Control.DeepSeq.NFData Crypto.PubKey.DSA.PublicKey
+ Crypto.PubKey.DSA: instance Control.DeepSeq.NFData Crypto.PubKey.DSA.Signature
+ Crypto.PubKey.DSA: instance Data.Data.Data Crypto.PubKey.DSA.KeyPair
+ Crypto.PubKey.DSA: instance Data.Data.Data Crypto.PubKey.DSA.Params
+ Crypto.PubKey.DSA: instance Data.Data.Data Crypto.PubKey.DSA.PrivateKey
+ Crypto.PubKey.DSA: instance Data.Data.Data Crypto.PubKey.DSA.PublicKey
+ Crypto.PubKey.DSA: instance Data.Data.Data Crypto.PubKey.DSA.Signature
+ Crypto.PubKey.DSA: instance GHC.Classes.Eq Crypto.PubKey.DSA.KeyPair
+ Crypto.PubKey.DSA: instance GHC.Classes.Eq Crypto.PubKey.DSA.Params
+ Crypto.PubKey.DSA: instance GHC.Classes.Eq Crypto.PubKey.DSA.PrivateKey
+ Crypto.PubKey.DSA: instance GHC.Classes.Eq Crypto.PubKey.DSA.PublicKey
+ Crypto.PubKey.DSA: instance GHC.Classes.Eq Crypto.PubKey.DSA.Signature
+ Crypto.PubKey.DSA: instance GHC.Read.Read Crypto.PubKey.DSA.KeyPair
+ Crypto.PubKey.DSA: instance GHC.Read.Read Crypto.PubKey.DSA.Params
+ Crypto.PubKey.DSA: instance GHC.Read.Read Crypto.PubKey.DSA.PrivateKey
+ Crypto.PubKey.DSA: instance GHC.Read.Read Crypto.PubKey.DSA.PublicKey
+ Crypto.PubKey.DSA: instance GHC.Read.Read Crypto.PubKey.DSA.Signature
+ Crypto.PubKey.DSA: instance GHC.Show.Show Crypto.PubKey.DSA.KeyPair
+ Crypto.PubKey.DSA: instance GHC.Show.Show Crypto.PubKey.DSA.Params
+ Crypto.PubKey.DSA: instance GHC.Show.Show Crypto.PubKey.DSA.PrivateKey
+ Crypto.PubKey.DSA: instance GHC.Show.Show Crypto.PubKey.DSA.PublicKey
+ Crypto.PubKey.DSA: instance GHC.Show.Show Crypto.PubKey.DSA.Signature
+ Crypto.PubKey.ECC.ECDSA: [private_curve] :: PrivateKey -> Curve
+ Crypto.PubKey.ECC.ECDSA: [private_d] :: PrivateKey -> PrivateNumber
+ Crypto.PubKey.ECC.ECDSA: [public_curve] :: PublicKey -> Curve
+ Crypto.PubKey.ECC.ECDSA: [public_q] :: PublicKey -> PublicPoint
+ Crypto.PubKey.ECC.ECDSA: [sign_r] :: Signature -> Integer
+ Crypto.PubKey.ECC.ECDSA: [sign_s] :: Signature -> Integer
+ Crypto.PubKey.ECC.ECDSA: instance Data.Data.Data Crypto.PubKey.ECC.ECDSA.KeyPair
+ Crypto.PubKey.ECC.ECDSA: instance Data.Data.Data Crypto.PubKey.ECC.ECDSA.PrivateKey
+ Crypto.PubKey.ECC.ECDSA: instance Data.Data.Data Crypto.PubKey.ECC.ECDSA.PublicKey
+ Crypto.PubKey.ECC.ECDSA: instance Data.Data.Data Crypto.PubKey.ECC.ECDSA.Signature
+ Crypto.PubKey.ECC.ECDSA: instance GHC.Classes.Eq Crypto.PubKey.ECC.ECDSA.KeyPair
+ Crypto.PubKey.ECC.ECDSA: instance GHC.Classes.Eq Crypto.PubKey.ECC.ECDSA.PrivateKey
+ Crypto.PubKey.ECC.ECDSA: instance GHC.Classes.Eq Crypto.PubKey.ECC.ECDSA.PublicKey
+ Crypto.PubKey.ECC.ECDSA: instance GHC.Classes.Eq Crypto.PubKey.ECC.ECDSA.Signature
+ Crypto.PubKey.ECC.ECDSA: instance GHC.Read.Read Crypto.PubKey.ECC.ECDSA.KeyPair
+ Crypto.PubKey.ECC.ECDSA: instance GHC.Read.Read Crypto.PubKey.ECC.ECDSA.PrivateKey
+ Crypto.PubKey.ECC.ECDSA: instance GHC.Read.Read Crypto.PubKey.ECC.ECDSA.PublicKey
+ Crypto.PubKey.ECC.ECDSA: instance GHC.Read.Read Crypto.PubKey.ECC.ECDSA.Signature
+ Crypto.PubKey.ECC.ECDSA: instance GHC.Show.Show Crypto.PubKey.ECC.ECDSA.KeyPair
+ Crypto.PubKey.ECC.ECDSA: instance GHC.Show.Show Crypto.PubKey.ECC.ECDSA.PrivateKey
+ Crypto.PubKey.ECC.ECDSA: instance GHC.Show.Show Crypto.PubKey.ECC.ECDSA.PublicKey
+ Crypto.PubKey.ECC.ECDSA: instance GHC.Show.Show Crypto.PubKey.ECC.ECDSA.Signature
+ Crypto.PubKey.ECC.P256: instance Data.ByteArray.Types.ByteArrayAccess Crypto.PubKey.ECC.P256.Scalar
+ Crypto.PubKey.ECC.P256: instance GHC.Classes.Eq Crypto.PubKey.ECC.P256.Point
+ Crypto.PubKey.ECC.P256: instance GHC.Classes.Eq Crypto.PubKey.ECC.P256.Scalar
+ Crypto.PubKey.ECC.P256: instance GHC.Show.Show Crypto.PubKey.ECC.P256.Point
+ Crypto.PubKey.ECC.P256: pointBase :: Point
+ Crypto.PubKey.ECC.P256: scalarGenerate :: MonadRandom randomly => randomly Scalar
+ Crypto.PubKey.ECC.Prim: pointBaseMul :: Curve -> Integer -> Point
+ Crypto.PubKey.ECC.Prim: scalarGenerate :: MonadRandom randomly => Curve -> randomly PrivateNumber
+ Crypto.PubKey.ECC.Types: [ecc_a] :: CurveCommon -> Integer
+ Crypto.PubKey.ECC.Types: [ecc_b] :: CurveCommon -> Integer
+ Crypto.PubKey.ECC.Types: [ecc_g] :: CurveCommon -> Point
+ Crypto.PubKey.ECC.Types: [ecc_h] :: CurveCommon -> Integer
+ Crypto.PubKey.ECC.Types: [ecc_n] :: CurveCommon -> Integer
+ Crypto.PubKey.ECC.Types: curveSizeBits :: Curve -> Int
+ Crypto.PubKey.ECC.Types: instance Control.DeepSeq.NFData Crypto.PubKey.ECC.Types.CurveBinary
+ Crypto.PubKey.ECC.Types: instance Control.DeepSeq.NFData Crypto.PubKey.ECC.Types.Point
+ Crypto.PubKey.ECC.Types: instance Data.Data.Data Crypto.PubKey.ECC.Types.Curve
+ Crypto.PubKey.ECC.Types: instance Data.Data.Data Crypto.PubKey.ECC.Types.CurveBinary
+ Crypto.PubKey.ECC.Types: instance Data.Data.Data Crypto.PubKey.ECC.Types.CurveCommon
+ Crypto.PubKey.ECC.Types: instance Data.Data.Data Crypto.PubKey.ECC.Types.CurveName
+ Crypto.PubKey.ECC.Types: instance Data.Data.Data Crypto.PubKey.ECC.Types.CurvePrime
+ Crypto.PubKey.ECC.Types: instance Data.Data.Data Crypto.PubKey.ECC.Types.Point
+ Crypto.PubKey.ECC.Types: instance GHC.Classes.Eq Crypto.PubKey.ECC.Types.Curve
+ Crypto.PubKey.ECC.Types: instance GHC.Classes.Eq Crypto.PubKey.ECC.Types.CurveBinary
+ Crypto.PubKey.ECC.Types: instance GHC.Classes.Eq Crypto.PubKey.ECC.Types.CurveCommon
+ Crypto.PubKey.ECC.Types: instance GHC.Classes.Eq Crypto.PubKey.ECC.Types.CurveName
+ Crypto.PubKey.ECC.Types: instance GHC.Classes.Eq Crypto.PubKey.ECC.Types.CurvePrime
+ Crypto.PubKey.ECC.Types: instance GHC.Classes.Eq Crypto.PubKey.ECC.Types.Point
+ Crypto.PubKey.ECC.Types: instance GHC.Classes.Ord Crypto.PubKey.ECC.Types.CurveName
+ Crypto.PubKey.ECC.Types: instance GHC.Enum.Enum Crypto.PubKey.ECC.Types.CurveName
+ Crypto.PubKey.ECC.Types: instance GHC.Read.Read Crypto.PubKey.ECC.Types.Curve
+ Crypto.PubKey.ECC.Types: instance GHC.Read.Read Crypto.PubKey.ECC.Types.CurveBinary
+ Crypto.PubKey.ECC.Types: instance GHC.Read.Read Crypto.PubKey.ECC.Types.CurveCommon
+ Crypto.PubKey.ECC.Types: instance GHC.Read.Read Crypto.PubKey.ECC.Types.CurveName
+ Crypto.PubKey.ECC.Types: instance GHC.Read.Read Crypto.PubKey.ECC.Types.CurvePrime
+ Crypto.PubKey.ECC.Types: instance GHC.Read.Read Crypto.PubKey.ECC.Types.Point
+ Crypto.PubKey.ECC.Types: instance GHC.Show.Show Crypto.PubKey.ECC.Types.Curve
+ Crypto.PubKey.ECC.Types: instance GHC.Show.Show Crypto.PubKey.ECC.Types.CurveBinary
+ Crypto.PubKey.ECC.Types: instance GHC.Show.Show Crypto.PubKey.ECC.Types.CurveCommon
+ Crypto.PubKey.ECC.Types: instance GHC.Show.Show Crypto.PubKey.ECC.Types.CurveName
+ Crypto.PubKey.ECC.Types: instance GHC.Show.Show Crypto.PubKey.ECC.Types.CurvePrime
+ Crypto.PubKey.ECC.Types: instance GHC.Show.Show Crypto.PubKey.ECC.Types.Point
+ Crypto.PubKey.Ed25519: instance Control.DeepSeq.NFData Crypto.PubKey.Ed25519.PublicKey
+ Crypto.PubKey.Ed25519: instance Control.DeepSeq.NFData Crypto.PubKey.Ed25519.SecretKey
+ Crypto.PubKey.Ed25519: instance Control.DeepSeq.NFData Crypto.PubKey.Ed25519.Signature
+ Crypto.PubKey.Ed25519: instance Data.ByteArray.Types.ByteArrayAccess Crypto.PubKey.Ed25519.PublicKey
+ Crypto.PubKey.Ed25519: instance Data.ByteArray.Types.ByteArrayAccess Crypto.PubKey.Ed25519.SecretKey
+ Crypto.PubKey.Ed25519: instance Data.ByteArray.Types.ByteArrayAccess Crypto.PubKey.Ed25519.Signature
+ Crypto.PubKey.Ed25519: instance GHC.Classes.Eq Crypto.PubKey.Ed25519.PublicKey
+ Crypto.PubKey.Ed25519: instance GHC.Classes.Eq Crypto.PubKey.Ed25519.SecretKey
+ Crypto.PubKey.Ed25519: instance GHC.Classes.Eq Crypto.PubKey.Ed25519.Signature
+ Crypto.PubKey.Ed25519: instance GHC.Show.Show Crypto.PubKey.Ed25519.PublicKey
+ Crypto.PubKey.Ed25519: instance GHC.Show.Show Crypto.PubKey.Ed25519.Signature
+ Crypto.PubKey.RSA: [private_dP] :: PrivateKey -> Integer
+ Crypto.PubKey.RSA: [private_dQ] :: PrivateKey -> Integer
+ Crypto.PubKey.RSA: [private_d] :: PrivateKey -> Integer
+ Crypto.PubKey.RSA: [private_p] :: PrivateKey -> Integer
+ Crypto.PubKey.RSA: [private_pub] :: PrivateKey -> PublicKey
+ Crypto.PubKey.RSA: [private_q] :: PrivateKey -> Integer
+ Crypto.PubKey.RSA: [private_qinv] :: PrivateKey -> Integer
+ Crypto.PubKey.RSA: [public_e] :: PublicKey -> Integer
+ Crypto.PubKey.RSA: [public_n] :: PublicKey -> Integer
+ Crypto.PubKey.RSA: [public_size] :: PublicKey -> Int
+ Crypto.PubKey.RSA.OAEP: [oaepHash] :: OAEPParams hash seed output -> hash
+ Crypto.PubKey.RSA.OAEP: [oaepLabel] :: OAEPParams hash seed output -> Maybe ByteString
+ Crypto.PubKey.RSA.OAEP: [oaepMaskGenAlg] :: OAEPParams hash seed output -> MaskGenAlgorithm seed output
+ Crypto.PubKey.RSA.PKCS15: instance Crypto.PubKey.RSA.PKCS15.HashAlgorithmASN1 Crypto.Hash.MD2.MD2
+ Crypto.PubKey.RSA.PKCS15: instance Crypto.PubKey.RSA.PKCS15.HashAlgorithmASN1 Crypto.Hash.MD5.MD5
+ Crypto.PubKey.RSA.PKCS15: instance Crypto.PubKey.RSA.PKCS15.HashAlgorithmASN1 Crypto.Hash.RIPEMD160.RIPEMD160
+ Crypto.PubKey.RSA.PKCS15: instance Crypto.PubKey.RSA.PKCS15.HashAlgorithmASN1 Crypto.Hash.SHA1.SHA1
+ Crypto.PubKey.RSA.PKCS15: instance Crypto.PubKey.RSA.PKCS15.HashAlgorithmASN1 Crypto.Hash.SHA224.SHA224
+ Crypto.PubKey.RSA.PKCS15: instance Crypto.PubKey.RSA.PKCS15.HashAlgorithmASN1 Crypto.Hash.SHA256.SHA256
+ Crypto.PubKey.RSA.PKCS15: instance Crypto.PubKey.RSA.PKCS15.HashAlgorithmASN1 Crypto.Hash.SHA384.SHA384
+ Crypto.PubKey.RSA.PKCS15: instance Crypto.PubKey.RSA.PKCS15.HashAlgorithmASN1 Crypto.Hash.SHA512.SHA512
+ Crypto.PubKey.RSA.PKCS15: instance Crypto.PubKey.RSA.PKCS15.HashAlgorithmASN1 Crypto.Hash.SHA512t.SHA512t_224
+ Crypto.PubKey.RSA.PKCS15: instance Crypto.PubKey.RSA.PKCS15.HashAlgorithmASN1 Crypto.Hash.SHA512t.SHA512t_256
+ Crypto.PubKey.RSA.PSS: [pssHash] :: PSSParams hash seed output -> hash
+ Crypto.PubKey.RSA.PSS: [pssMaskGenAlg] :: PSSParams hash seed output -> MaskGenAlgorithm seed output
+ Crypto.PubKey.RSA.PSS: [pssSaltLength] :: PSSParams hash seed output -> Int
+ Crypto.PubKey.RSA.PSS: [pssTrailerField] :: PSSParams hash seed output -> Word8
+ Crypto.PubKey.RSA.Types: [private_dP] :: PrivateKey -> Integer
+ Crypto.PubKey.RSA.Types: [private_dQ] :: PrivateKey -> Integer
+ Crypto.PubKey.RSA.Types: [private_d] :: PrivateKey -> Integer
+ Crypto.PubKey.RSA.Types: [private_p] :: PrivateKey -> Integer
+ Crypto.PubKey.RSA.Types: [private_pub] :: PrivateKey -> PublicKey
+ Crypto.PubKey.RSA.Types: [private_q] :: PrivateKey -> Integer
+ Crypto.PubKey.RSA.Types: [private_qinv] :: PrivateKey -> Integer
+ Crypto.PubKey.RSA.Types: [public_e] :: PublicKey -> Integer
+ Crypto.PubKey.RSA.Types: [public_n] :: PublicKey -> Integer
+ Crypto.PubKey.RSA.Types: [public_size] :: PublicKey -> Int
+ Crypto.PubKey.RSA.Types: instance Control.DeepSeq.NFData Crypto.PubKey.RSA.Types.KeyPair
+ Crypto.PubKey.RSA.Types: instance Control.DeepSeq.NFData Crypto.PubKey.RSA.Types.PrivateKey
+ Crypto.PubKey.RSA.Types: instance Control.DeepSeq.NFData Crypto.PubKey.RSA.Types.PublicKey
+ Crypto.PubKey.RSA.Types: instance Data.Data.Data Crypto.PubKey.RSA.Types.KeyPair
+ Crypto.PubKey.RSA.Types: instance Data.Data.Data Crypto.PubKey.RSA.Types.PrivateKey
+ Crypto.PubKey.RSA.Types: instance Data.Data.Data Crypto.PubKey.RSA.Types.PublicKey
+ Crypto.PubKey.RSA.Types: instance GHC.Classes.Eq Crypto.PubKey.RSA.Types.Blinder
+ Crypto.PubKey.RSA.Types: instance GHC.Classes.Eq Crypto.PubKey.RSA.Types.Error
+ Crypto.PubKey.RSA.Types: instance GHC.Classes.Eq Crypto.PubKey.RSA.Types.KeyPair
+ Crypto.PubKey.RSA.Types: instance GHC.Classes.Eq Crypto.PubKey.RSA.Types.PrivateKey
+ Crypto.PubKey.RSA.Types: instance GHC.Classes.Eq Crypto.PubKey.RSA.Types.PublicKey
+ Crypto.PubKey.RSA.Types: instance GHC.Read.Read Crypto.PubKey.RSA.Types.KeyPair
+ Crypto.PubKey.RSA.Types: instance GHC.Read.Read Crypto.PubKey.RSA.Types.PrivateKey
+ Crypto.PubKey.RSA.Types: instance GHC.Read.Read Crypto.PubKey.RSA.Types.PublicKey
+ Crypto.PubKey.RSA.Types: instance GHC.Show.Show Crypto.PubKey.RSA.Types.Blinder
+ Crypto.PubKey.RSA.Types: instance GHC.Show.Show Crypto.PubKey.RSA.Types.Error
+ Crypto.PubKey.RSA.Types: instance GHC.Show.Show Crypto.PubKey.RSA.Types.KeyPair
+ Crypto.PubKey.RSA.Types: instance GHC.Show.Show Crypto.PubKey.RSA.Types.PrivateKey
+ Crypto.PubKey.RSA.Types: instance GHC.Show.Show Crypto.PubKey.RSA.Types.PublicKey
+ Crypto.Random.Types: instance Crypto.Random.Types.DRG gen => Crypto.Random.Types.MonadRandom (Crypto.Random.Types.MonadPseudoRandom gen)
+ Crypto.Random.Types: instance Crypto.Random.Types.DRG gen => GHC.Base.Applicative (Crypto.Random.Types.MonadPseudoRandom gen)
+ Crypto.Random.Types: instance Crypto.Random.Types.DRG gen => GHC.Base.Functor (Crypto.Random.Types.MonadPseudoRandom gen)
+ Crypto.Random.Types: instance Crypto.Random.Types.DRG gen => GHC.Base.Monad (Crypto.Random.Types.MonadPseudoRandom gen)
+ Crypto.Random.Types: instance Crypto.Random.Types.MonadRandom GHC.Types.IO
- Crypto.KDF.PBKDF2: type PRF password = password -> Bytes -> Bytes
+ Crypto.KDF.PBKDF2: type PRF password = password the password parameters -> Bytes the content -> Bytes prf(password,content)
- Crypto.PubKey.MaskGenFunction: type MaskGenAlgorithm seed output = seed -> Int -> output
+ Crypto.PubKey.MaskGenFunction: type MaskGenAlgorithm seed output = seed seed -> Int length to generate -> output
Files
- CHANGELOG.md +5/−0
- Crypto/Cipher/ChaChaPoly1305.hs +19/−0
- Crypto/KDF/BCrypt.hs +37/−14
- Crypto/PubKey/ECC/P256.hs +17/−0
- Crypto/PubKey/ECC/Prim.hs +16/−1
- Crypto/PubKey/ECC/Types.hs +6/−0
- cryptonite.cabal +4/−4
- tests/ChaChaPoly1305.hs +12/−1
- tests/KAT_AES/KATCBC.hs +48/−48
- tests/KAT_AES/KATECB.hs +133/−133
- tests/KAT_PubKey/ECC.hs +7/−7
CHANGELOG.md view
@@ -1,3 +1,8 @@+## 0.8++* Add support for ChaChaPoly1305 Nonce Increment (John Galt)+* Move repository to the haskell-crypto organisation+ ## 0.7 * Add PKCS5 / PKCS7 padding and unpadding methods
Crypto/Cipher/ChaChaPoly1305.hs view
@@ -1,3 +1,5 @@+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+ -- | -- Module : Crypto.Cipher.ChaChaPoly1305 -- License : BSD-style@@ -14,6 +16,7 @@ , Nonce , nonce12 , nonce8+ , incrementNonce , initialize , appendAAD , finalizeAAD@@ -30,6 +33,8 @@ import qualified Crypto.MAC.Poly1305 as Poly1305 import Data.Memory.Endian import qualified Data.ByteArray.Pack as P+import Foreign.Ptr+import Foreign.Storable data State = State !ChaCha.State !Poly1305.State@@ -37,6 +42,7 @@ !Word64 -- ciphertext length newtype Nonce = Nonce Bytes+ deriving (ByteArrayAccess) -- Based on the following pseudo code: --@@ -73,6 +79,19 @@ | B.length constant /= 4 = CryptoFailed $ CryptoError_IvSizeInvalid | B.length iv /= 8 = CryptoFailed $ CryptoError_IvSizeInvalid | otherwise = CryptoPassed $ Nonce $ B.concat [constant, iv]++-- | Increment a nonce+incrementNonce :: Nonce -> Nonce+incrementNonce (Nonce n) = Nonce $ B.copyAndFreeze n $ \s ->+ loop s $ s `plusPtr` ((B.length n) - 1)+ where+ loop :: Ptr Word8 -> Ptr Word8 -> IO ()+ loop s p+ | s == p = peek s >>= poke s . (+) 1+ | otherwise = do+ r <- (+) 1 <$> peek p+ poke p r+ if r == 0 then loop s (p `plusPtr` (-1)) else return () initialize :: ByteArrayAccess key => key -> Nonce -> CryptoFailable State
Crypto/KDF/BCrypt.hs view
@@ -1,24 +1,45 @@ -- | Password encoding and validation using bcrypt. --+-- Example usasge:+--+-- >>> import Crypto.KDF.BCrypt (hashPassword, validatePassword)+-- >>> import qualified Data.ByteString.Char8 as B+-- >>>+-- >>> let bcryptHash = B.pack "$2a$10$MJJifxfaqQmbx1Mhsq3oq.YmMmfNhkyW4s/MS3K5rIMVfB7w0Q/OW"+-- >>> let password = B.pack "password"+-- >>> validatePassword password bcryptHash+-- >>> True+-- >>> let otherPassword = B.pack "otherpassword"+-- >>> otherHash <- hashPassword 12 otherPasssword :: IO B.ByteString+-- >>> validatePassword otherPassword otherHash+-- >>> True+-- -- See <https://www.usenix.org/conference/1999-usenix-annual-technical-conference/future-adaptable-password-scheme> -- for details of the original algorithm. ----- Hashes are strings of the form @$2a$10$MJJifxfaqQmbx1Mhsq3oq.YmMmfNhkyW4s/MS3K5rIMVfB7w0Q/OW@ which--- encode a version number, an integer cost parameter and the concatenated salt and hash bytes (each--- separately Base64 encoded. Incrementing the cost parameter approximately doubles the time taken--- to calculate the hash.+-- The functions @hashPassword@ and @validatePassword@ should be all that+-- most users need. ----- The different version numbers have evolved because of bugs in the standard C implementations.--- The most up to date version is @2b@ and this implementation the @2b@ version prefix, but will also--- attempt to validate against hashes with versions @2a@ and @2y@. Version @2@ or @2x@ will be rejected.--- No attempt is made to differentiate between the different versions when validating a password, but--- in practice this shouldn't cause any problems if passwords are UTF-8 encoded (which they should be).+-- Hashes are strings of the form+-- @$2a$10$MJJifxfaqQmbx1Mhsq3oq.YmMmfNhkyW4s/MS3K5rIMVfB7w0Q/OW@ which+-- encode a version number, an integer cost parameter and the concatenated+-- salt and hash bytes (each separately Base64 encoded. Incrementing the+-- cost parameter approximately doubles the time taken to calculate the hash. ----- The cost parameter can be between 4 and 31 inclusive, but anything less than 10 is probably not strong--- enough. High values may be prohibitively slow depending on your hardware. Choose the highest value you--- can without having an unacceptable impact on your users. The cost parameter can also varied depending on--- the account, since it is unique to an individual hash.+-- The different version numbers have evolved because of bugs in the standard+-- C implementations. The most up to date version is @2b@ and this+-- implementation the @2b@ version prefix, but will also attempt to validate+-- against hashes with versions @2a@ and @2y@. Version @2@ or @2x@ will be+-- rejected. No attempt is made to differentiate between the different versions+-- when validating a password, but in practice this shouldn't cause any problems+-- if passwords are UTF-8 encoded (which they should be).+--+-- The cost parameter can be between 4 and 31 inclusive, but anything less than+-- 10 is probably not strong enough. High values may be prohibitively slow+-- depending on your hardware. Choose the highest value you can without having+-- an unacceptable impact on your users. The cost parameter can also be varied+-- depending on the account, since it is unique to an individual hash. module Crypto.KDF.BCrypt ( hashPassword@@ -39,6 +60,8 @@ data BCryptHash = BCH Char Int Bytes Bytes -- | Create a bcrypt hash for a password with a provided cost value.+-- Typically used to create a hash when a new user account is registered+-- or when a user changes their password. -- -- Each increment of the cost approximately doubles the time taken. -- The 16 bytes of random salt will be generated internally.@@ -80,7 +103,7 @@ b64 :: (ByteArray ba) => ba -> ba b64 = convertToBase Base64OpenBSD --- | Check a password against a bcrypt hash+-- | Check a password against a stored bcrypt hash when authenticating a user. -- -- Returns @False@ if the password doesn't match the hash, or if the hash is -- invalid or an unsupported version.
Crypto/PubKey/ECC/P256.hs view
@@ -15,6 +15,7 @@ ( Scalar , Point -- * point arithmetic+ , pointBase , pointAdd , pointMul , pointsMulVarTime@@ -25,6 +26,7 @@ , pointToBinary , pointFromBinary -- * scalar arithmetic+ , scalarGenerate , scalarZero , scalarIsZero , scalarAdd@@ -48,6 +50,7 @@ import qualified Crypto.Internal.ByteArray as B import Data.Memory.PtrMethods (memSet) import Crypto.Error+import Crypto.Random import Crypto.Number.Serialize.Internal (os2ip, i2ospOf) import qualified Crypto.Number.Serialize as S (os2ip, i2ospOf) @@ -75,6 +78,11 @@ -- Point methods ------------------------------------------------------------------------ +pointBase :: Point+pointBase =+ case scalarFromInteger 1 of+ CryptoPassed s -> toPoint s+ CryptoFailed _ -> error "pointBase: assumption failed" -- | Lift to curve a scalar --@@ -162,6 +170,15 @@ ------------------------------------------------------------------------ -- Scalar methods ------------------------------------------------------------------------++-- | Generate a randomly generated new scalar+scalarGenerate :: MonadRandom randomly => randomly Scalar+scalarGenerate = unwrap . scalarFromBinary . witness <$> getRandomBytes 32+ where+ unwrap (CryptoFailed _) = error "scalarGenerate: assumption failed"+ unwrap (CryptoPassed s) = s+ witness :: ScrubbedBytes -> ScrubbedBytes+ witness = id -- | The scalar representing 0 scalarZero :: Scalar
Crypto/PubKey/ECC/Prim.hs view
@@ -2,8 +2,10 @@ -- -- /WARNING:/ These functions are vulnerable to timing attacks. module Crypto.PubKey.ECC.Prim- ( pointAdd+ ( scalarGenerate+ , pointAdd , pointDouble+ , pointBaseMul , pointMul , isPointAtInfinity , isPointValid@@ -12,8 +14,15 @@ import Data.Maybe import Crypto.Number.ModArithmetic import Crypto.Number.F2m+import Crypto.Number.Generate (generateBetween) import Crypto.PubKey.ECC.Types+import Crypto.Random +scalarGenerate :: MonadRandom randomly => Curve -> randomly PrivateNumber+scalarGenerate curve = generateBetween 1 (n - 1)+ where+ n = ecc_n $ common_curve curve+ --TODO: Extract helper function for `fromMaybe PointO...` -- | Elliptic Curve point addition.@@ -73,6 +82,12 @@ yr = mulF2m fx xp xp `addF2m` mulF2m fx xr (s `addF2m` 1) return $ Point xr yr where a = ecc_a cc++-- | Elliptic curve point multiplication using the base+--+-- /WARNING:/ Vulnerable to timing attacks.+pointBaseMul :: Curve -> Integer -> Point+pointBaseMul c n = pointMul c n (ecc_g $ common_curve c) -- | Elliptic curve point multiplication (double and add algorithm). --
Crypto/PubKey/ECC/Types.hs view
@@ -17,6 +17,7 @@ , CurveBinary(..) , CurvePrime(..) , common_curve+ , curveSizeBits , ecc_fx , ecc_p , CurveCommon(..)@@ -27,6 +28,7 @@ import Data.Data import Crypto.Internal.Imports+import Crypto.Number.Basic (numBits) -- | Define either a binary curve or a prime curve. data Curve = CurveF2m CurveBinary -- ^ 𝔽(2^m)@@ -159,6 +161,10 @@ , (SEC_t571r1, [1,3,132,0,39]) ] -}++-- | get the size of the curve in bits+curveSizeBits :: Curve -> Int+curveSizeBits = numBits . ecc_n . common_curve -- | Get the curve definition associated with a recommended known curve name. getCurveByName :: CurveName -> Curve
cryptonite.cabal view
@@ -1,5 +1,5 @@ Name: cryptonite-Version: 0.7+Version: 0.8 Synopsis: Cryptography Primitives sink Description: A repository of cryptographic primitives.@@ -31,8 +31,8 @@ Category: Cryptography Stability: experimental Build-Type: Simple-Homepage: https://github.com/vincenthz/cryptonite-Bug-reports: https://github.com/vincenthz/cryptonite/issues+Homepage: https://github.com/haskell-crypto/cryptonite+Bug-reports: https://github.com/haskell-crypto/cryptonite/issues Cabal-Version: >=1.10 extra-doc-files: README.md CHANGELOG.md extra-source-files: cbits/*.h@@ -44,7 +44,7 @@ source-repository head type: git- location: https://github.com/vincenthz/cryptonite+ location: https://github.com/haskell-crypto/cryptonite Flag support_aesni Description: allow compilation with AESNI on system and architecture that supports it
tests/ChaChaPoly1305.hs view
@@ -9,7 +9,7 @@ import qualified Data.ByteString as B import qualified Data.ByteArray as B (convert) -plaintext, aad, key, iv, ciphertext, tag :: B.ByteString+plaintext, aad, key, iv, ciphertext, tag, nonce1, nonce2, nonce3 :: B.ByteString plaintext = "Ladies and Gentlemen of the class of '99: If I could offer you only one tip for the future, sunscreen would be it." aad = "\x50\x51\x52\x53\xc0\xc1\xc2\xc3\xc4\xc5\xc6\xc7" key = "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8a\x8b\x8c\x8d\x8e\x8f\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9a\x9b\x9c\x9d\x9e\x9f"@@ -17,10 +17,14 @@ constant = "\x07\x00\x00\x00" ciphertext = "\xd3\x1a\x8d\x34\x64\x8e\x60\xdb\x7b\x86\xaf\xbc\x53\xef\x7e\xc2\xa4\xad\xed\x51\x29\x6e\x08\xfe\xa9\xe2\xb5\xa7\x36\xee\x62\xd6\x3d\xbe\xa4\x5e\x8c\xa9\x67\x12\x82\xfa\xfb\x69\xda\x92\x72\x8b\x1a\x71\xde\x0a\x9e\x06\x0b\x29\x05\xd6\xa5\xb6\x7e\xcd\x3b\x36\x92\xdd\xbd\x7f\x2d\x77\x8b\x8c\x98\x03\xae\xe3\x28\x09\x1b\x58\xfa\xb3\x24\xe4\xfa\xd6\x75\x94\x55\x85\x80\x8b\x48\x31\xd7\xbc\x3f\xf4\xde\xf0\x8e\x4b\x7a\x9d\xe5\x76\xd2\x65\x86\xce\xc6\x4b\x61\x16" tag = "\x1a\xe1\x0b\x59\x4f\x09\xe2\x6a\x7e\x90\x2e\xcb\xd0\x60\x06\x91"+nonce1 = "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"+nonce2 = "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01"+nonce3 = "\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff" tests = testGroup "ChaChaPoly1305" [ testCase "V1" runEncrypt , testCase "V1-decrypt" runDecrypt+ , testCase "nonce increment" runNonceInc ] where runEncrypt = let ini = throwCryptoError $ AEAD.initialize key (throwCryptoError $ AEAD.nonce8 constant iv)@@ -39,3 +43,10 @@ in propertyHoldCase [ eqTest "plaintext" plaintext out , eqTest "tag" tag (B.convert outtag) ]++ runNonceInc =+ let n1 = throwCryptoError $ AEAD.nonce12 nonce1+ n3 = throwCryptoError $ AEAD.nonce12 nonce3+ in propertyHoldCase [ eqTest "nonce" nonce2 $ B.convert . AEAD.incrementNonce $ n1+ , eqTest "nonce" nonce1 $ B.convert . AEAD.incrementNonce $ n3+ ]
tests/KAT_AES/KATCBC.hs view
@@ -10,7 +10,7 @@ , vectors_aes192_enc, vectors_aes192_dec , vectors_aes256_enc, vectors_aes256_dec :: [KATCBC] vectors_aes128_enc =- [+ [ ("\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00","\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00","\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00","\x66\xe9\x4b\xd4\xef\x8a\x2c\x3b\x88\x4c\xfa\x59\xca\x34\x2b\x2e") , ("\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01","\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00","\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00","\xb6\xae\xaf\xfa\x75\x2d\xc0\x8b\x51\x63\x97\x31\x76\x1a\xed\x00") , ("\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02","\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00","\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00","\xcb\x64\xcf\x3f\x42\x2a\xe8\x4b\xb9\x0e\x3a\xb4\xdb\xa7\xbd\x86")@@ -23,10 +23,10 @@ , ("\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01","\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03","\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01","\x17\xd6\x14\xf3\x79\xa9\x35\x90\x77\xe9\x55\x77\xfd\x31\xc2\x0a") , ("\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02","\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03","\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02","\x8f\x42\xc2\x4b\xee\x6e\x63\x47\x2b\x16\x5a\xa9\x41\x31\x2f\x7c") , ("\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03","\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03","\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03","\xe5\xb5\x07\x7f\x93\x46\x46\x2c\x62\xa0\x75\xc0\xc7\x08\xee\x96")- ]+ ] vectors_aes192_enc =- [+ [ ("\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00","\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00","\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00","\xaa\xe0\x69\x92\xac\xbf\x52\xa3\xe8\xf4\xa9\x6e\xc9\x30\x0b\xd7") , ("\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01","\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00","\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00","\x5f\x88\xef\x3f\xbd\xeb\xf2\xe4\xe2\x66\x65\x12\xd3\xbc\xb7\x0f") , ("\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02","\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00","\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00","\xdb\x42\xf5\x1c\xd2\x0e\xca\xd2\x9e\xb0\x13\x2b\x0f\xaa\x4b\x85")@@ -40,10 +40,10 @@ , ("\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02","\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03","\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02","\xf2\xf0\xae\xd8\xcd\xc9\x21\xca\x4b\x55\x84\x5d\xa4\x15\x21\xc2") , ("\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03","\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03","\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03","\xda\xb4\x01\x5f\x98\x70\x25\xeb\xb8\xa8\x5f\x3c\x7f\x73\x70\x19") - ]+ ] vectors_aes256_enc =- [+ [ ("\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00","\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00","\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00","\xdc\x95\xc0\x78\xa2\x40\x89\x89\xad\x48\xa2\x14\x92\x84\x20\x87") , ("\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01","\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00","\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00","\x72\x98\xca\xa5\x65\x03\x1e\xad\xc6\xce\x23\xd2\x3e\xa6\x63\x78") , ("\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02","\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00","\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00","\xf4\x35\xa1\x11\xa3\xe4\xa1\x94\x49\x19\xf9\x12\xc5\xa2\x41\xde")@@ -56,52 +56,52 @@ , ("\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01","\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03","\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01","\x62\xae\x12\xf3\x24\xbf\xea\x08\xd5\xf6\x75\xb5\x13\x02\x6b\xbf") , ("\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02","\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03","\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02","\x00\xf9\xc7\x44\x4b\xb0\xcc\x80\x6c\x7c\x39\xee\x22\x11\xf1\x46") , ("\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03","\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03","\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03","\x91\xc0\x87\x62\x87\x6d\xcc\xf9\xba\x20\x4a\x33\x76\x8f\xa5\xfe")- ]+ ] vectors_aes128_dec =- [- ("\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00","\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00","\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00","\x14\x0f\x0f\x10\x11\xb5\x22\x3d\x79\x58\x77\x17\xff\xd9\xec\x3a")- , ("\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01","\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00","\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00","\x33\x08\x32\x40\xd6\x5c\xbc\x72\xaa\x0b\x44\xf3\xe1\x9e\xa9\x5a")- , ("\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02","\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00","\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00","\x65\x0a\x42\xa0\x3c\x4b\x93\xa4\xb7\x43\xdc\x9e\x9c\xf4\xc0\x9b")- , ("\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03","\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00","\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00","\x80\xcd\x20\xe1\xbd\x89\x3c\x5e\xe4\x20\x76\x85\xb0\x9a\x0e\x3e")- , ("\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00","\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01","\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00","\x15\x0e\x0e\x11\x10\xb4\x23\x3c\x78\x59\x76\x16\xfe\xd8\xed\x3b")- , ("\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01","\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01","\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00","\x32\x09\x33\x41\xd7\x5d\xbd\x73\xab\x0a\x45\xf2\xe0\x9f\xa8\x5b")- , ("\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02","\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01","\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00","\x64\x0b\x43\xa1\x3d\x4a\x92\xa5\xb6\x42\xdd\x9f\x9d\xf5\xc1\x9a")- , ("\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03","\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01","\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00","\x81\xcc\x21\xe0\xbc\x88\x3d\x5f\xe5\x21\x77\x84\xb1\x9b\x0f\x3f")- , ("\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00","\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03","\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02","\xf5\x06\x41\x7e\x6a\x8f\xbc\x32\xdd\xa5\x52\x73\xbf\x9f\x4d\x5c")- , ("\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01","\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03","\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01","\xbf\x6d\x28\xac\x20\xc9\x1d\x65\xa9\xd4\xb0\x96\xc2\xd5\xa5\x09")- , ("\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02","\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03","\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02","\x5f\x2a\x46\xab\x8d\xb9\x5b\x22\x15\xfe\x1a\xa4\xdd\x69\x59\x26")- , ("\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03","\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03","\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03","\x71\x9b\x21\xb5\x39\x7c\x2f\x16\x7c\x8b\x45\x22\xb5\x20\xec\x2e")- ]+ [+ ("\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00","\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00","\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00","\x14\x0f\x0f\x10\x11\xb5\x22\x3d\x79\x58\x77\x17\xff\xd9\xec\x3a")+ , ("\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01","\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00","\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00","\x33\x08\x32\x40\xd6\x5c\xbc\x72\xaa\x0b\x44\xf3\xe1\x9e\xa9\x5a")+ , ("\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02","\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00","\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00","\x65\x0a\x42\xa0\x3c\x4b\x93\xa4\xb7\x43\xdc\x9e\x9c\xf4\xc0\x9b")+ , ("\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03","\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00","\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00","\x80\xcd\x20\xe1\xbd\x89\x3c\x5e\xe4\x20\x76\x85\xb0\x9a\x0e\x3e")+ , ("\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00","\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01","\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00","\x15\x0e\x0e\x11\x10\xb4\x23\x3c\x78\x59\x76\x16\xfe\xd8\xed\x3b")+ , ("\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01","\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01","\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00","\x32\x09\x33\x41\xd7\x5d\xbd\x73\xab\x0a\x45\xf2\xe0\x9f\xa8\x5b")+ , ("\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02","\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01","\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00","\x64\x0b\x43\xa1\x3d\x4a\x92\xa5\xb6\x42\xdd\x9f\x9d\xf5\xc1\x9a")+ , ("\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03","\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01","\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00","\x81\xcc\x21\xe0\xbc\x88\x3d\x5f\xe5\x21\x77\x84\xb1\x9b\x0f\x3f")+ , ("\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00","\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03","\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02","\xf5\x06\x41\x7e\x6a\x8f\xbc\x32\xdd\xa5\x52\x73\xbf\x9f\x4d\x5c")+ , ("\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01","\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03","\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01","\xbf\x6d\x28\xac\x20\xc9\x1d\x65\xa9\xd4\xb0\x96\xc2\xd5\xa5\x09")+ , ("\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02","\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03","\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02","\x5f\x2a\x46\xab\x8d\xb9\x5b\x22\x15\xfe\x1a\xa4\xdd\x69\x59\x26")+ , ("\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03","\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03","\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03","\x71\x9b\x21\xb5\x39\x7c\x2f\x16\x7c\x8b\x45\x22\xb5\x20\xec\x2e")+ ] vectors_aes192_dec =- [- ("\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00","\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00","\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00","\x13\x46\x0e\x87\xa8\xfc\x02\x3e\xf2\x50\x1a\xfe\x7f\xf5\x1c\x51")- , ("\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01","\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00","\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00","\x91\x75\x27\xfc\xd4\xa0\x6f\x32\x27\x29\x90\x14\xca\xde\xd4\x1a")- , ("\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02","\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00","\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00","\x29\x64\x80\xb6\xa5\xd6\xcf\xb3\x78\x3f\x21\x6b\x80\x31\x3d\xb3")- , ("\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03","\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00","\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00","\xbc\xa5\x06\x07\xd0\x67\x30\x85\x2d\x3a\x50\x4b\x68\x0a\x19\xcc")- , ("\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00","\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01","\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00","\x12\x47\x0f\x86\xa9\xfd\x03\x3f\xf3\x51\x1b\xff\x7e\xf4\x1d\x50")- , ("\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01","\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01","\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00","\x90\x74\x26\xfd\xd5\xa1\x6e\x33\x26\x28\x91\x15\xcb\xdf\xd5\x1b")- , ("\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02","\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01","\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00","\x28\x65\x81\xb7\xa4\xd7\xce\xb2\x79\x3e\x20\x6a\x81\x30\x3c\xb2")- , ("\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03","\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01","\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00","\xbd\xa4\x07\x06\xd1\x66\x31\x84\x2c\x3b\x51\x4a\x69\x0b\x18\xcd")- , ("\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00","\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03","\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02","\x38\xf9\xf9\xd1\x7e\x2c\x82\xaf\xdc\xed\x68\x03\xb6\x31\x46\x3e")- , ("\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01","\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03","\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01","\x35\x4e\xc1\x01\x0f\x17\x50\x5e\x63\x37\x40\x4b\x9a\xf2\xc0\x5c")- , ("\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02","\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03","\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02","\xa7\x7c\xc9\xd1\x4f\x44\xf7\xf7\xcc\x45\x80\x83\x19\xb7\xa4\x71")- , ("\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03","\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03","\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03","\xf9\x1d\xb1\x13\x0b\xd1\xc0\x66\x9f\xfa\xc2\x0e\xbe\xdd\xcb\xca")- ]+ [+ ("\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00","\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00","\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00","\x13\x46\x0e\x87\xa8\xfc\x02\x3e\xf2\x50\x1a\xfe\x7f\xf5\x1c\x51")+ , ("\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01","\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00","\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00","\x91\x75\x27\xfc\xd4\xa0\x6f\x32\x27\x29\x90\x14\xca\xde\xd4\x1a")+ , ("\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02","\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00","\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00","\x29\x64\x80\xb6\xa5\xd6\xcf\xb3\x78\x3f\x21\x6b\x80\x31\x3d\xb3")+ , ("\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03","\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00","\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00","\xbc\xa5\x06\x07\xd0\x67\x30\x85\x2d\x3a\x50\x4b\x68\x0a\x19\xcc")+ , ("\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00","\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01","\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00","\x12\x47\x0f\x86\xa9\xfd\x03\x3f\xf3\x51\x1b\xff\x7e\xf4\x1d\x50")+ , ("\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01","\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01","\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00","\x90\x74\x26\xfd\xd5\xa1\x6e\x33\x26\x28\x91\x15\xcb\xdf\xd5\x1b")+ , ("\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02","\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01","\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00","\x28\x65\x81\xb7\xa4\xd7\xce\xb2\x79\x3e\x20\x6a\x81\x30\x3c\xb2")+ , ("\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03","\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01","\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00","\xbd\xa4\x07\x06\xd1\x66\x31\x84\x2c\x3b\x51\x4a\x69\x0b\x18\xcd")+ , ("\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00","\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03","\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02","\x38\xf9\xf9\xd1\x7e\x2c\x82\xaf\xdc\xed\x68\x03\xb6\x31\x46\x3e")+ , ("\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01","\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03","\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01","\x35\x4e\xc1\x01\x0f\x17\x50\x5e\x63\x37\x40\x4b\x9a\xf2\xc0\x5c")+ , ("\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02","\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03","\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02","\xa7\x7c\xc9\xd1\x4f\x44\xf7\xf7\xcc\x45\x80\x83\x19\xb7\xa4\x71")+ , ("\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03","\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03","\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03","\xf9\x1d\xb1\x13\x0b\xd1\xc0\x66\x9f\xfa\xc2\x0e\xbe\xdd\xcb\xca")+ ] vectors_aes256_dec =- [- ("\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00","\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00","\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00","\x67\x67\x1c\xe1\xfa\x91\xdd\xeb\x0f\x8f\xbb\xb3\x66\xb5\x31\xb4")- , ("\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01","\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00","\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00","\x7b\xd3\xfb\x90\x65\x56\x9f\x39\x8b\x09\xcb\x93\x4b\x1e\x01\x23")- , ("\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02","\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00","\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00","\xda\xa8\xbf\x5c\xde\x2e\x52\x45\x5f\xa3\xb3\xfe\x33\x32\x47\xca")- , ("\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03","\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00","\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00","\x83\x24\xdc\xb4\x30\x12\x73\x6c\xed\x58\xab\x8f\x4b\x05\xca\x0b")- , ("\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00","\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01","\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00","\x66\x66\x1d\xe0\xfb\x90\xdc\xea\x0e\x8e\xba\xb2\x67\xb4\x30\xb5")- , ("\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01","\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01","\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00","\x7a\xd2\xfa\x91\x64\x57\x9e\x38\x8a\x08\xca\x92\x4a\x1f\x00\x22")- , ("\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02","\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01","\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00","\xdb\xa9\xbe\x5d\xdf\x2f\x53\x44\x5e\xa2\xb2\xff\x32\x33\x46\xcb")- , ("\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03","\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01","\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00","\x82\x25\xdd\xb5\x31\x13\x72\x6d\xec\x59\xaa\x8e\x4a\x04\xcb\x0a")- , ("\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00","\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03","\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02","\x68\xe9\x07\x16\xe3\x66\x1b\x1d\xb1\x89\x74\xb0\x9c\x46\x47\xe4")- , ("\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01","\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03","\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01","\x7f\xb9\xeb\xa4\xd3\x5f\x70\x40\xab\x52\xec\xd2\x3b\x48\xb7\x6e")- , ("\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02","\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03","\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02","\x6c\x58\x0f\x41\x82\x36\xbc\xff\x64\x1d\xac\xa7\x3e\x34\x11\x18")- , ("\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03","\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03","\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03","\x3f\x62\xd6\x8c\xb1\xf7\x62\x28\xa4\xc3\x82\x4f\x8b\x24\xe7\x4b")- ]+ [+ ("\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00","\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00","\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00","\x67\x67\x1c\xe1\xfa\x91\xdd\xeb\x0f\x8f\xbb\xb3\x66\xb5\x31\xb4")+ , ("\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01","\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00","\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00","\x7b\xd3\xfb\x90\x65\x56\x9f\x39\x8b\x09\xcb\x93\x4b\x1e\x01\x23")+ , ("\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02","\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00","\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00","\xda\xa8\xbf\x5c\xde\x2e\x52\x45\x5f\xa3\xb3\xfe\x33\x32\x47\xca")+ , ("\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03","\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00","\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00","\x83\x24\xdc\xb4\x30\x12\x73\x6c\xed\x58\xab\x8f\x4b\x05\xca\x0b")+ , ("\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00","\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01","\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00","\x66\x66\x1d\xe0\xfb\x90\xdc\xea\x0e\x8e\xba\xb2\x67\xb4\x30\xb5")+ , ("\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01","\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01","\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00","\x7a\xd2\xfa\x91\x64\x57\x9e\x38\x8a\x08\xca\x92\x4a\x1f\x00\x22")+ , ("\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02","\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01","\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00","\xdb\xa9\xbe\x5d\xdf\x2f\x53\x44\x5e\xa2\xb2\xff\x32\x33\x46\xcb")+ , ("\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03","\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01","\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00","\x82\x25\xdd\xb5\x31\x13\x72\x6d\xec\x59\xaa\x8e\x4a\x04\xcb\x0a")+ , ("\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00","\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03","\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02","\x68\xe9\x07\x16\xe3\x66\x1b\x1d\xb1\x89\x74\xb0\x9c\x46\x47\xe4")+ , ("\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01","\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03","\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01","\x7f\xb9\xeb\xa4\xd3\x5f\x70\x40\xab\x52\xec\xd2\x3b\x48\xb7\x6e")+ , ("\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02","\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03","\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02","\x6c\x58\x0f\x41\x82\x36\xbc\xff\x64\x1d\xac\xa7\x3e\x34\x11\x18")+ , ("\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03","\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03","\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03","\x3f\x62\xd6\x8c\xb1\xf7\x62\x28\xa4\xc3\x82\x4f\x8b\x24\xe7\x4b")+ ]
tests/KAT_AES/KATECB.hs view
@@ -3,146 +3,146 @@ import qualified Data.ByteString as B vectors_aes128_enc =- [- ( B.pack [0x10, 0xa5, 0x88, 0x69, 0xd7, 0x4b, 0xe5, 0xa3,0x74,0xcf,0x86,0x7c,0xfb,0x47,0x38,0x59]- , B.replicate 16 0- , B.pack [0x6d,0x25,0x1e,0x69,0x44,0xb0,0x51,0xe0,0x4e,0xaa,0x6f,0xb4,0xdb,0xf7,0x84,0x65]- )- , ( B.replicate 16 0- , B.replicate 16 0- , B.pack [0x66,0xe9,0x4b,0xd4,0xef,0x8a,0x2c,0x3b,0x88,0x4c,0xfa,0x59,0xca,0x34,0x2b,0x2e]- )- , ( B.replicate 16 0- , B.replicate 16 1- , B.pack [0xe1,0x4d,0x5d,0x0e,0xe2,0x77,0x15,0xdf,0x08,0xb4,0x15,0x2b,0xa2,0x3d,0xa8,0xe0]- )- , ( B.replicate 16 1- , B.replicate 16 2- , B.pack [0x17,0xd6,0x14,0xf3,0x79,0xa9,0x35,0x90,0x77,0xe9,0x55,0x77,0xfd,0x31,0xc2,0x0a]- )- , ( B.replicate 16 2- , B.replicate 16 1- , B.pack [0x8f,0x42,0xc2,0x4b,0xee,0x6e,0x63,0x47,0x2b,0x16,0x5a,0xa9,0x41,0x31,0x2f,0x7c]- )- , ( B.replicate 16 3- , B.replicate 16 2- , B.pack [0x90,0x98,0x85,0xe4,0x77,0xbc,0x20,0xf5,0x8a,0x66,0x97,0x1d,0xa0,0xbc,0x75,0xe3]- )- ]+ [+ ( B.pack [0x10, 0xa5, 0x88, 0x69, 0xd7, 0x4b, 0xe5, 0xa3,0x74,0xcf,0x86,0x7c,0xfb,0x47,0x38,0x59]+ , B.replicate 16 0+ , B.pack [0x6d,0x25,0x1e,0x69,0x44,0xb0,0x51,0xe0,0x4e,0xaa,0x6f,0xb4,0xdb,0xf7,0x84,0x65]+ )+ , ( B.replicate 16 0+ , B.replicate 16 0+ , B.pack [0x66,0xe9,0x4b,0xd4,0xef,0x8a,0x2c,0x3b,0x88,0x4c,0xfa,0x59,0xca,0x34,0x2b,0x2e]+ )+ , ( B.replicate 16 0+ , B.replicate 16 1+ , B.pack [0xe1,0x4d,0x5d,0x0e,0xe2,0x77,0x15,0xdf,0x08,0xb4,0x15,0x2b,0xa2,0x3d,0xa8,0xe0]+ )+ , ( B.replicate 16 1+ , B.replicate 16 2+ , B.pack [0x17,0xd6,0x14,0xf3,0x79,0xa9,0x35,0x90,0x77,0xe9,0x55,0x77,0xfd,0x31,0xc2,0x0a]+ )+ , ( B.replicate 16 2+ , B.replicate 16 1+ , B.pack [0x8f,0x42,0xc2,0x4b,0xee,0x6e,0x63,0x47,0x2b,0x16,0x5a,0xa9,0x41,0x31,0x2f,0x7c]+ )+ , ( B.replicate 16 3+ , B.replicate 16 2+ , B.pack [0x90,0x98,0x85,0xe4,0x77,0xbc,0x20,0xf5,0x8a,0x66,0x97,0x1d,0xa0,0xbc,0x75,0xe3]+ )+ ] vectors_aes192_enc =- [- ( B.replicate 24 0- , B.replicate 16 0- , B.pack [0xaa,0xe0,0x69,0x92,0xac,0xbf,0x52,0xa3,0xe8,0xf4,0xa9,0x6e,0xc9,0x30,0x0b,0xd7]- )- , ( B.replicate 24 0- , B.replicate 16 1- , B.pack [0xcf,0x1e,0xce,0x3c,0x44,0xb0,0x78,0xfb,0x27,0xcb,0x0a,0x3e,0x07,0x1b,0x08,0x20]- )- , ( B.replicate 24 1- , B.replicate 16 2- , B.pack [0xeb,0x8c,0x17,0x30,0x90,0xc7,0x5b,0x77,0xd6,0x72,0xb4,0x57,0xa7,0x78,0xd9,0xd0]- )- , ( B.replicate 24 2- , B.replicate 16 1- , B.pack [0xf2,0xf0,0xae,0xd8,0xcd,0xc9,0x21,0xca,0x4b,0x55,0x84,0x5d,0xa4,0x15,0x21,0xc2]- )- , ( B.replicate 24 3- , B.replicate 16 2- , B.pack [0xca,0xcc,0x30,0x79,0xe4,0xb7,0x95,0x27,0x63,0xd2,0x55,0xd6,0x34,0x10,0x46,0x14]- )- ]+ [+ ( B.replicate 24 0+ , B.replicate 16 0+ , B.pack [0xaa,0xe0,0x69,0x92,0xac,0xbf,0x52,0xa3,0xe8,0xf4,0xa9,0x6e,0xc9,0x30,0x0b,0xd7]+ )+ , ( B.replicate 24 0+ , B.replicate 16 1+ , B.pack [0xcf,0x1e,0xce,0x3c,0x44,0xb0,0x78,0xfb,0x27,0xcb,0x0a,0x3e,0x07,0x1b,0x08,0x20]+ )+ , ( B.replicate 24 1+ , B.replicate 16 2+ , B.pack [0xeb,0x8c,0x17,0x30,0x90,0xc7,0x5b,0x77,0xd6,0x72,0xb4,0x57,0xa7,0x78,0xd9,0xd0]+ )+ , ( B.replicate 24 2+ , B.replicate 16 1+ , B.pack [0xf2,0xf0,0xae,0xd8,0xcd,0xc9,0x21,0xca,0x4b,0x55,0x84,0x5d,0xa4,0x15,0x21,0xc2]+ )+ , ( B.replicate 24 3+ , B.replicate 16 2+ , B.pack [0xca,0xcc,0x30,0x79,0xe4,0xb7,0x95,0x27,0x63,0xd2,0x55,0xd6,0x34,0x10,0x46,0x14]+ )+ ] vectors_aes256_enc =- [ ( B.replicate 32 0- , B.replicate 16 0- , B.pack [0xdc,0x95,0xc0,0x78,0xa2,0x40,0x89,0x89,0xad,0x48,0xa2,0x14,0x92,0x84,0x20,0x87]- )- , ( B.replicate 32 0- , B.replicate 16 1- , B.pack [0x7b,0xc3,0x02,0x6c,0xd7,0x37,0x10,0x3e,0x62,0x90,0x2b,0xcd,0x18,0xfb,0x01,0x63]- )- , ( B.replicate 32 1- , B.replicate 16 2- , B.pack [0x62,0xae,0x12,0xf3,0x24,0xbf,0xea,0x08,0xd5,0xf6,0x75,0xb5,0x13,0x02,0x6b,0xbf]- )- , ( B.replicate 32 2- , B.replicate 16 1- , B.pack [0x00,0xf9,0xc7,0x44,0x4b,0xb0,0xcc,0x80,0x6c,0x7c,0x39,0xee,0x22,0x11,0xf1,0x46]- )- , ( B.replicate 32 3- , B.replicate 16 2- , B.pack [0xb4,0x05,0x87,0x3e,0xa0,0x76,0x1b,0x9c,0xa9,0x9f,0x70,0xb0,0x16,0x16,0xce,0xb1]- )- ]+ [ ( B.replicate 32 0+ , B.replicate 16 0+ , B.pack [0xdc,0x95,0xc0,0x78,0xa2,0x40,0x89,0x89,0xad,0x48,0xa2,0x14,0x92,0x84,0x20,0x87]+ )+ , ( B.replicate 32 0+ , B.replicate 16 1+ , B.pack [0x7b,0xc3,0x02,0x6c,0xd7,0x37,0x10,0x3e,0x62,0x90,0x2b,0xcd,0x18,0xfb,0x01,0x63]+ )+ , ( B.replicate 32 1+ , B.replicate 16 2+ , B.pack [0x62,0xae,0x12,0xf3,0x24,0xbf,0xea,0x08,0xd5,0xf6,0x75,0xb5,0x13,0x02,0x6b,0xbf]+ )+ , ( B.replicate 32 2+ , B.replicate 16 1+ , B.pack [0x00,0xf9,0xc7,0x44,0x4b,0xb0,0xcc,0x80,0x6c,0x7c,0x39,0xee,0x22,0x11,0xf1,0x46]+ )+ , ( B.replicate 32 3+ , B.replicate 16 2+ , B.pack [0xb4,0x05,0x87,0x3e,0xa0,0x76,0x1b,0x9c,0xa9,0x9f,0x70,0xb0,0x16,0x16,0xce,0xb1]+ )+ ] vectors_aes128_dec =- [ ( B.replicate 16 0- , B.replicate 16 0- , B.pack [0x14,0x0f,0x0f,0x10,0x11,0xb5,0x22,0x3d,0x79,0x58,0x77,0x17,0xff,0xd9,0xec,0x3a]- )- , ( B.replicate 16 0- , B.replicate 16 1- , B.pack [0x15,0x6d,0x0f,0x85,0x75,0xd5,0x33,0x07,0x52,0xf8,0x4a,0xf2,0x72,0xff,0x30,0x50]- )- , ( B.replicate 16 1- , B.replicate 16 2- , B.pack [0x34,0x37,0xd6,0xe2,0x31,0xd7,0x02,0x41,0x9b,0x51,0xb4,0x94,0x72,0x71,0xb6,0x11]- )- , ( B.replicate 16 2- , B.replicate 16 1- , B.pack [0xe3,0xcd,0xe2,0x37,0xc8,0xf2,0xd9,0x7b,0x8d,0x79,0xf9,0x17,0x1d,0x4b,0xda,0xc1]- )- , ( B.replicate 16 3- , B.replicate 16 2- , B.pack [0x5b,0x94,0xaa,0xed,0xd7,0x83,0x99,0x8c,0xd5,0x15,0x35,0x35,0x18,0xcc,0x45,0xe2]- )- ]+ [ ( B.replicate 16 0+ , B.replicate 16 0+ , B.pack [0x14,0x0f,0x0f,0x10,0x11,0xb5,0x22,0x3d,0x79,0x58,0x77,0x17,0xff,0xd9,0xec,0x3a]+ )+ , ( B.replicate 16 0+ , B.replicate 16 1+ , B.pack [0x15,0x6d,0x0f,0x85,0x75,0xd5,0x33,0x07,0x52,0xf8,0x4a,0xf2,0x72,0xff,0x30,0x50]+ )+ , ( B.replicate 16 1+ , B.replicate 16 2+ , B.pack [0x34,0x37,0xd6,0xe2,0x31,0xd7,0x02,0x41,0x9b,0x51,0xb4,0x94,0x72,0x71,0xb6,0x11]+ )+ , ( B.replicate 16 2+ , B.replicate 16 1+ , B.pack [0xe3,0xcd,0xe2,0x37,0xc8,0xf2,0xd9,0x7b,0x8d,0x79,0xf9,0x17,0x1d,0x4b,0xda,0xc1]+ )+ , ( B.replicate 16 3+ , B.replicate 16 2+ , B.pack [0x5b,0x94,0xaa,0xed,0xd7,0x83,0x99,0x8c,0xd5,0x15,0x35,0x35,0x18,0xcc,0x45,0xe2]+ )+ ] vectors_aes192_dec =- [- ( B.replicate 24 0- , B.replicate 16 0- , B.pack [0x13,0x46,0x0e,0x87,0xa8,0xfc,0x02,0x3e,0xf2,0x50,0x1a,0xfe,0x7f,0xf5,0x1c,0x51]- )- , ( B.replicate 24 0- , B.replicate 16 1- , B.pack [0x92,0x17,0x07,0xc3,0x3d,0x1c,0xc5,0x96,0x7d,0xa5,0x1d,0xbb,0xb0,0x66,0xb2,0x6c]- )- , ( B.replicate 24 1- , B.replicate 16 2- , B.pack [0xee,0x92,0x97,0xc6,0xba,0xe8,0x26,0x4d,0xff,0x08,0x0e,0xbb,0x1e,0x74,0x11,0xc1]- )- , ( B.replicate 24 2- , B.replicate 16 1- , B.pack [0x49,0x67,0xdf,0x70,0xd2,0x9e,0x9a,0x7f,0x5d,0x7c,0xb9,0xc1,0x20,0xc3,0x8a,0x71]- )- , ( B.replicate 24 3- , B.replicate 16 2- , B.pack [0x74,0x38,0x62,0x42,0x6b,0x56,0x7f,0xd5,0xf0,0x1d,0x1b,0x59,0x56,0x01,0x26,0x29]- )- ]+ [+ ( B.replicate 24 0+ , B.replicate 16 0+ , B.pack [0x13,0x46,0x0e,0x87,0xa8,0xfc,0x02,0x3e,0xf2,0x50,0x1a,0xfe,0x7f,0xf5,0x1c,0x51]+ )+ , ( B.replicate 24 0+ , B.replicate 16 1+ , B.pack [0x92,0x17,0x07,0xc3,0x3d,0x1c,0xc5,0x96,0x7d,0xa5,0x1d,0xbb,0xb0,0x66,0xb2,0x6c]+ )+ , ( B.replicate 24 1+ , B.replicate 16 2+ , B.pack [0xee,0x92,0x97,0xc6,0xba,0xe8,0x26,0x4d,0xff,0x08,0x0e,0xbb,0x1e,0x74,0x11,0xc1]+ )+ , ( B.replicate 24 2+ , B.replicate 16 1+ , B.pack [0x49,0x67,0xdf,0x70,0xd2,0x9e,0x9a,0x7f,0x5d,0x7c,0xb9,0xc1,0x20,0xc3,0x8a,0x71]+ )+ , ( B.replicate 24 3+ , B.replicate 16 2+ , B.pack [0x74,0x38,0x62,0x42,0x6b,0x56,0x7f,0xd5,0xf0,0x1d,0x1b,0x59,0x56,0x01,0x26,0x29]+ )+ ] vectors_aes256_dec =- [ ( B.replicate 32 0- , B.replicate 16 0- , B.pack [0x67,0x67,0x1c,0xe1,0xfa,0x91,0xdd,0xeb,0x0f,0x8f,0xbb,0xb3,0x66,0xb5,0x31,0xb4]- )- , ( B.replicate 32 0- , B.replicate 16 1- , B.pack [0xcc,0x09,0x21,0xa3,0xc5,0xca,0x17,0xf7,0x48,0xb7,0xc2,0x7b,0x73,0xba,0x87,0xa2]- )- , ( B.replicate 32 1- , B.replicate 16 2- , B.pack [0xc0,0x4b,0x27,0x90,0x1a,0x50,0xcf,0xfa,0xf1,0xbb,0x88,0x9f,0xc0,0x92,0x5e,0x14]- )- , ( B.replicate 32 2- , B.replicate 16 1- , B.pack [0x24,0x61,0x53,0x5d,0x16,0x1c,0x15,0x39,0x88,0x32,0x77,0x29,0xc5,0x8c,0xc0,0x3a]- )- , ( B.replicate 32 3- , B.replicate 16 2- , B.pack [0x30,0xc9,0x1c,0xce,0xfe,0x89,0x30,0xcf,0xff,0x31,0xdb,0xcc,0xfc,0x11,0xc5,0x23]- )- ]+ [ ( B.replicate 32 0+ , B.replicate 16 0+ , B.pack [0x67,0x67,0x1c,0xe1,0xfa,0x91,0xdd,0xeb,0x0f,0x8f,0xbb,0xb3,0x66,0xb5,0x31,0xb4]+ )+ , ( B.replicate 32 0+ , B.replicate 16 1+ , B.pack [0xcc,0x09,0x21,0xa3,0xc5,0xca,0x17,0xf7,0x48,0xb7,0xc2,0x7b,0x73,0xba,0x87,0xa2]+ )+ , ( B.replicate 32 1+ , B.replicate 16 2+ , B.pack [0xc0,0x4b,0x27,0x90,0x1a,0x50,0xcf,0xfa,0xf1,0xbb,0x88,0x9f,0xc0,0x92,0x5e,0x14]+ )+ , ( B.replicate 32 2+ , B.replicate 16 1+ , B.pack [0x24,0x61,0x53,0x5d,0x16,0x1c,0x15,0x39,0x88,0x32,0x77,0x29,0xc5,0x8c,0xc0,0x3a]+ )+ , ( B.replicate 32 3+ , B.replicate 16 2+ , B.pack [0x30,0xc9,0x1c,0xce,0xfe,0x89,0x30,0xcf,0xff,0x31,0xdb,0xcc,0xfc,0x11,0xc5,0x23]+ )+ ]
tests/KAT_PubKey/ECC.hs view
@@ -142,13 +142,13 @@ eccTests = testGroup "ECC" [ testGroup "valid-point" $ map doPointValidTest (zip [katZero..] vectorsPoint) , testGroup "property" $- [ testProperty "point-add" $ \curve (QAInteger r1) (QAInteger r2) ->- let curveN = ECC.ecc_n . ECC.common_curve $ curve- curveGen = ECC.ecc_g . ECC.common_curve $ curve- p1 = ECC.pointMul curve r1 curveGen- p2 = ECC.pointMul curve r2 curveGen- pR = ECC.pointMul curve ((r1 + r2) `mod` curveN) curveGen- in pR `propertyEq` ECC.pointAdd curve p1 p2+ [ testProperty "point-add" $ \aCurve (QAInteger r1) (QAInteger r2) ->+ let curveN = ECC.ecc_n . ECC.common_curve $ aCurve+ curveGen = ECC.ecc_g . ECC.common_curve $ aCurve+ p1 = ECC.pointMul aCurve r1 curveGen+ p2 = ECC.pointMul aCurve r2 curveGen+ pR = ECC.pointMul aCurve ((r1 + r2) `mod` curveN) curveGen+ in pR `propertyEq` ECC.pointAdd aCurve p1 p2 ] ]