NaCl-0.0.4.0: Easy-and-safe-to-use high-level Haskell bindings to NaCl
Safe HaskellNone
LanguageHaskell2010

NaCl.Stream

Description

Unauthenticated streaming encryption.

Note: Unauthenticated encryption is insecure in general. Only use the functions from this modules if you know exactly what you are doing. We only provide this module for compatibility with NaCl. @

This is crypto_box_* from NaCl.

Synopsis

Documentation

type Key a = SizedByteArray CRYPTO_STREAM_KEYBYTES a Source #

Encryption key that can be used for Stream.

This type is parametrised by the actual data type that contains bytes. This can be, for example, a ByteString, but, since this is a secret key, it is better to use ScrubbedBytes.

toKey :: ByteArrayAccess ba => ba -> Maybe (Key ba) Source #

Make a Key from an arbitrary byte array.

This function returns Just if and only if the byte array has the right length to be used as a key with a Stream.

type Nonce a = SizedByteArray CRYPTO_STREAM_NONCEBYTES a Source #

Nonce that can be used for Stream.

This type is parametrised by the actual data type that contains bytes. This can be, for example, a ByteString.

toNonce :: ByteArrayAccess ba => ba -> Maybe (Nonce ba) Source #

Make a Nonce from an arbitrary byte array.

This function returns Just if and only if the byte array has the right length to be used as a nonce with a Stream.

type MaxStreamSize = 18446744073709551615 Source #

The maximum size of the stream produced by generate.

generate Source #

Arguments

:: forall n key nonce ct. (ByteArrayAccess key, ByteArrayAccess nonce, ByteArrayN n ct, n <= MaxStreamSize) 
=> Key key

Secret key

-> Nonce nonce

Nonce

-> ct 

Generate a stream of pseudo-random bytes.

xor Source #

Arguments

:: (ByteArrayAccess key, ByteArrayAccess nonce, ByteArrayAccess pt, ByteArray ct) 
=> Key key

Secret key

-> Nonce nonce

Nonce

-> pt

Input (plain/cipher) text

-> ct 

Encrypt/decrypt a message.