| License | BSD-style | 
|---|---|
| Maintainer | Vincent Hanquez <vincent@snarc.org> | 
| Stability | stable | 
| Portability | good | 
| Safe Haskell | Safe-Inferred | 
| Language | Haskell2010 | 
Crypto.Cipher.ChaCha
Contents
Description
Synopsis
- initialize :: (ByteArrayAccess key, ByteArrayAccess nonce) => Int -> key -> nonce -> State
- initializeX :: (ByteArrayAccess key, ByteArrayAccess nonce) => Int -> key -> nonce -> State
- combine :: ByteArray ba => State -> ba -> (ba, State)
- generate :: ByteArray ba => State -> Int -> (ba, State)
- data State
- initializeSimple :: ByteArrayAccess seed => seed -> StateSimple
- generateSimple :: ByteArray ba => StateSimple -> Int -> (ba, StateSimple)
- data StateSimple
Documentation
Arguments
| :: (ByteArrayAccess key, ByteArrayAccess nonce) | |
| => Int | number of rounds (8,12,20) | 
| -> key | the key (128 or 256 bits) | 
| -> nonce | the nonce (64 or 96 bits) | 
| -> State | the initial ChaCha state | 
Initialize a new ChaCha context with the number of rounds, the key and the nonce associated.
Arguments
| :: (ByteArrayAccess key, ByteArrayAccess nonce) | |
| => Int | number of rounds (8,12,20) | 
| -> key | the key (256 bits) | 
| -> nonce | the nonce (192 bits) | 
| -> State | the initial ChaCha state | 
Initialize a new XChaCha context with the number of rounds, the key and the nonce associated.
An XChaCha state can be used like a regular ChaCha state after initialisation.
Arguments
| :: ByteArray ba | |
| => State | the current ChaCha state | 
| -> ba | the source to xor with the generator | 
| -> (ba, State) | 
Combine the chacha output and an arbitrary message with a xor, and return the combined output and the new state.
Arguments
| :: ByteArray ba | |
| => State | the current ChaCha state | 
| -> Int | the length of data to generate | 
| -> (ba, State) | 
Generate a number of bytes from the ChaCha output directly
ChaCha context
Simple interface for DRG purpose
Arguments
| :: ByteArrayAccess seed | |
| => seed | a 40 bytes long seed | 
| -> StateSimple | 
Initialize simple ChaCha State
The seed need to be at least 40 bytes long
generateSimple :: ByteArray ba => StateSimple -> Int -> (ba, StateSimple) Source #
similar to generate but assume certains values
data StateSimple Source #
ChaCha context for DRG purpose (see Crypto.Random.ChaChaDRG)
Instances
| NFData StateSimple Source # | |
| Defined in Crypto.Cipher.ChaCha Methods rnf :: StateSimple -> () # | |