cryptonite-0.24: Cryptography Primitives sink

LicenseBSD-style
MaintainerVincent Hanquez <vincent@snarc.org>
Stabilitystable
Portabilitygood
Safe HaskellNone
LanguageHaskell2010

Crypto.Cipher.ChaCha

Contents

Description

 

Synopsis

Documentation

initialize Source #

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.

combine Source #

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.

generate Source #

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

data State Source #

ChaCha context

Instances

NFData State Source # 

Methods

rnf :: State -> () #

simple interface for DRG purpose

initializeSimple Source #

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