cipher-aes128-0.6: AES and common modes using AES-NI when available.

Safe HaskellNone

Crypto.Cipher.AES128.Internal

Contents

Synopsis

Documentation

data RawKey128 Source

Constructors

RKey128 

Fields

lowK128 :: !Word64
 
highK128 :: !Word64
 

data RawKey192 Source

Constructors

RKey192 

Fields

lowK192 :: !Word64
 
midK192 :: !Word64
 
highK192 :: !Word64
 

data RawKey256 Source

Constructors

RKey256 

Fields

aK256 :: !Word64
 
bK256 :: !Word64
 
cK256 :: !Word64
 
dK256 :: !Word64
 

data GCM k Source

Constructors

GCM 

Fields

_gcmFP :: GCMpc
 
_keyFP :: k
 
_ctxFP2 :: ForeignPtr CTXStruct
 

generateKey128Source

Arguments

:: Ptr Word64

Buffer of 16 bytes of key material

-> IO (Maybe AESKey128) 

generateKey192Source

Arguments

:: Ptr Word64

Buffer of 16 bytes of key material

-> IO (Maybe AESKey192) 

generateKey256Source

Arguments

:: Ptr Word64

Buffer of 16 bytes of key material

-> IO (Maybe AESKey256) 

generateGCM :: GetExpanded k => k -> IO (Maybe (GCM k))Source

encryptECBSource

Arguments

:: GetExpanded k 
=> k

The key

-> Ptr Word8

The result buffer

-> Ptr Word8

The source buffer

-> Int

The input size in blocks

-> IO () 

decryptECBSource

Arguments

:: GetExpanded k 
=> k

The key

-> Ptr Word8

The result buffer

-> Ptr Word8

The source buffer

-> Int

The input size in blocks

-> IO () 

encryptCTRSource

Arguments

:: GetExpanded k 
=> k 
-> Ptr Word8

IV

-> Ptr Word8

NEW IV

-> Ptr Word8

CT

-> Ptr Word8

PT

-> Int

Length in bytes

-> IO () 

decryptCTRSource

Arguments

:: GetExpanded k 
=> k 
-> Ptr Word8

IV

-> Ptr Word8

NEW IV

-> Ptr Word8

PT

-> Ptr Word8

CT

-> Int

Length in bytes

-> IO () 

encryptGCM :: GetExpanded k => k -> GCMpc -> Ptr Word8 -> Word32 -> Ptr Word8 -> Word32 -> Ptr Word8 -> Word32 -> Ptr Word8 -> Ptr Word8 -> IO ()Source

decryptGCM :: GetExpanded k => k -> GCMpc -> Ptr Word8 -> Word32 -> Ptr Word8 -> Word32 -> Ptr Word8 -> Word32 -> Ptr Word8 -> Ptr Word8 -> IO ()Source

Piece-meal functions

cipherOnlyGCM :: GetExpanded k => GCM k -> Ptr Word8 -> Ptr Word8 -> Int -> IO ()Source

decipherOnlyGCM :: GetExpanded k => GCM k -> Ptr Word8 -> Ptr Word8 -> Int -> IO ()Source

finishGCM :: GetExpanded k => GCM k -> Ptr Word8 -> IO ()Source

aadGCM :: GetExpanded k => GCM k -> Ptr Word8 -> Int -> IO ()Source