cryptonite-0.21: Cryptography Primitives sink

LicenseBSD-style
MaintainerBrandon Hamilton <brandon.hamilton@gmail.com>
Stabilitystable
Portabilitygood
Safe HaskellNone
LanguageHaskell2010

Crypto.Cipher.XSalsa

Description

Implementation of XSalsa20 algorithm https://cr.yp.to/snuffle/xsalsa-20081128.pdf Based on the Salsa20 algorithm with 256 bit key extended with 192 bit nonce

Synopsis

Documentation

initialize Source #

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 XSalsa state

Initialize a new XSalsa context with the number of rounds, the key and the nonce associated.

combine Source #

Arguments

:: ByteArray ba 
=> State

the current Salsa state

-> ba

the source to xor with the generator

-> (ba, State) 

Combine the salsa 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 Salsa state

-> Int

the length of data to generate

-> (ba, State) 

Generate a number of bytes from the Salsa output directly

data State Source #

Salsa context

Instances

NFData State Source # 

Methods

rnf :: State -> () #