Safe Haskell | None |
---|---|
Language | Haskell2010 |
OpenSSL.EVP.Internal
Synopsis
- newtype Cipher = Cipher (Ptr EVP_CIPHER)
- data EVP_CIPHER
- withCipherPtr :: Cipher -> (Ptr EVP_CIPHER -> IO a) -> IO a
- cipherIvLength :: Cipher -> Int
- newtype CipherCtx = CipherCtx (ForeignPtr EVP_CIPHER_CTX)
- data EVP_CIPHER_CTX
- newCipherCtx :: IO CipherCtx
- withCipherCtxPtr :: CipherCtx -> (Ptr EVP_CIPHER_CTX -> IO a) -> IO a
- withNewCipherCtxPtr :: (Ptr EVP_CIPHER_CTX -> IO a) -> IO a
- data CryptoMode
- cipherSetPadding :: CipherCtx -> Int -> IO CipherCtx
- cipherInitBS :: Cipher -> ByteString -> ByteString -> CryptoMode -> IO CipherCtx
- cipherUpdateBS :: CipherCtx -> ByteString -> IO ByteString
- cipherFinalBS :: CipherCtx -> IO ByteString
- cipherStrictly :: CipherCtx -> ByteString -> IO ByteString
- cipherLazily :: CipherCtx -> ByteString -> IO ByteString
- newtype Digest = Digest (Ptr EVP_MD)
- data EVP_MD
- withMDPtr :: Digest -> (Ptr EVP_MD -> IO a) -> IO a
- newtype DigestCtx = DigestCtx (ForeignPtr EVP_MD_CTX)
- data EVP_MD_CTX
- withDigestCtxPtr :: DigestCtx -> (Ptr EVP_MD_CTX -> IO a) -> IO a
- digestUpdateBS :: DigestCtx -> ByteString -> IO ()
- digestFinalBS :: DigestCtx -> IO ByteString
- digestFinal :: DigestCtx -> IO String
- digestStrictly :: Digest -> ByteString -> IO DigestCtx
- digestLazily :: Digest -> ByteString -> IO DigestCtx
- newtype HmacCtx = HmacCtx (ForeignPtr HMAC_CTX)
- data HMAC_CTX
- withHmacCtxPtr :: HmacCtx -> (Ptr HMAC_CTX -> IO a) -> IO a
- hmacUpdateBS :: HmacCtx -> ByteString -> IO ()
- hmacFinalBS :: HmacCtx -> IO ByteString
- hmacLazily :: Digest -> ByteString -> ByteString -> IO HmacCtx
- newtype VaguePKey = VaguePKey (ForeignPtr EVP_PKEY)
- data EVP_PKEY
- class PKey k where
- createPKey :: (Ptr EVP_PKEY -> IO a) -> IO VaguePKey
- wrapPKeyPtr :: Ptr EVP_PKEY -> IO VaguePKey
- withPKeyPtr :: VaguePKey -> (Ptr EVP_PKEY -> IO a) -> IO a
- withPKeyPtr' :: PKey k => k -> (Ptr EVP_PKEY -> IO a) -> IO a
- unsafePKeyToPtr :: VaguePKey -> Ptr EVP_PKEY
- touchPKey :: VaguePKey -> IO ()
Documentation
Cipher
is an opaque object that represents an algorithm of
symmetric cipher.
Constructors
Cipher (Ptr EVP_CIPHER) |
data EVP_CIPHER #
withCipherPtr :: Cipher -> (Ptr EVP_CIPHER -> IO a) -> IO a #
cipherIvLength :: Cipher -> Int #
Constructors
CipherCtx (ForeignPtr EVP_CIPHER_CTX) |
data EVP_CIPHER_CTX #
newCipherCtx :: IO CipherCtx #
withCipherCtxPtr :: CipherCtx -> (Ptr EVP_CIPHER_CTX -> IO a) -> IO a #
withNewCipherCtxPtr :: (Ptr EVP_CIPHER_CTX -> IO a) -> IO a #
data CryptoMode #
CryptoMode
represents instruction to cipher
and such like.
cipherSetPadding :: CipherCtx -> Int -> IO CipherCtx #
Arguments
:: Cipher | |
-> ByteString | key |
-> ByteString | IV |
-> CryptoMode | |
-> IO CipherCtx |
cipherUpdateBS :: CipherCtx -> ByteString -> IO ByteString #
cipherFinalBS :: CipherCtx -> IO ByteString #
cipherStrictly :: CipherCtx -> ByteString -> IO ByteString #
cipherLazily :: CipherCtx -> ByteString -> IO ByteString #
Digest
is an opaque object that represents an algorithm of
message digest.
Constructors
DigestCtx (ForeignPtr EVP_MD_CTX) |
data EVP_MD_CTX #
withDigestCtxPtr :: DigestCtx -> (Ptr EVP_MD_CTX -> IO a) -> IO a #
digestUpdateBS :: DigestCtx -> ByteString -> IO () #
digestFinalBS :: DigestCtx -> IO ByteString #
digestFinal :: DigestCtx -> IO String #
digestStrictly :: Digest -> ByteString -> IO DigestCtx #
digestLazily :: Digest -> ByteString -> IO DigestCtx #
withHmacCtxPtr :: HmacCtx -> (Ptr HMAC_CTX -> IO a) -> IO a #
hmacUpdateBS :: HmacCtx -> ByteString -> IO () #
hmacFinalBS :: HmacCtx -> IO ByteString #
hmacLazily :: Digest -> ByteString -> ByteString -> IO HmacCtx #
VaguePKey is a ForeignPtr
to EVP_PKEY
, that is either public
key or a ker pair. We can't tell which at compile time.
Methods
Wrap the key (i.g. RSA) into EVP_PKEY
.
fromPKey :: VaguePKey -> IO (Maybe k) #
Extract the concrete key from the EVP_PKEY
. Returns
Nothing
if the type mismatches.
Do the same as EVP_PKEY_size().
pkeyDefaultMD :: k -> IO Digest #
Return the default digesting algorithm for the key.
Instances
PKey RSAKeyPair # | |
Defined in OpenSSL.EVP.PKey Methods toPKey :: RSAKeyPair -> IO VaguePKey # fromPKey :: VaguePKey -> IO (Maybe RSAKeyPair) # pkeySize :: RSAKeyPair -> Int # pkeyDefaultMD :: RSAKeyPair -> IO Digest # | |
PKey RSAPubKey # | |
PKey DSAKeyPair # | |
Defined in OpenSSL.EVP.PKey Methods toPKey :: DSAKeyPair -> IO VaguePKey # fromPKey :: VaguePKey -> IO (Maybe DSAKeyPair) # pkeySize :: DSAKeyPair -> Int # pkeyDefaultMD :: DSAKeyPair -> IO Digest # | |
PKey DSAPubKey # | |
PKey SomeKeyPair # | |
Defined in OpenSSL.EVP.PKey Methods toPKey :: SomeKeyPair -> IO VaguePKey # fromPKey :: VaguePKey -> IO (Maybe SomeKeyPair) # pkeySize :: SomeKeyPair -> Int # pkeyDefaultMD :: SomeKeyPair -> IO Digest # | |
PKey SomePublicKey # | |
Defined in OpenSSL.EVP.PKey Methods toPKey :: SomePublicKey -> IO VaguePKey # fromPKey :: VaguePKey -> IO (Maybe SomePublicKey) # pkeySize :: SomePublicKey -> Int # pkeyDefaultMD :: SomePublicKey -> IO Digest # |
createPKey :: (Ptr EVP_PKEY -> IO a) -> IO VaguePKey #
wrapPKeyPtr :: Ptr EVP_PKEY -> IO VaguePKey #
withPKeyPtr :: VaguePKey -> (Ptr EVP_PKEY -> IO a) -> IO a #
withPKeyPtr' :: PKey k => k -> (Ptr EVP_PKEY -> IO a) -> IO a #
unsafePKeyToPtr :: VaguePKey -> Ptr EVP_PKEY #