Safe Haskell | None |
---|---|
Language | GHC2021 |
Low level bindings to the monocypher C library.
- Version
The Haskell library monocypher
version A.B.C.D
is compatible with the C
library monocypher
version A.B.C
, which is shipped and compiled together
with this Haskell library. The D
part of the version number is the only
one we increment in the Haskell library independently from the C library.
- License
This module is dual-licensed the same way the monocypher
C library is.
Namely, you can choose the license you prefer among
CC0-1.0 or
BSD-2-Clause.
- Differences from the C library
- The the
crypto_
prefix is dropped from every name. - The
argon2
function takes all its parameters separately instead of wrapping them in different structures like the Ccrypto_argon2
version does. Also, the necessarywork_area
is allocated automatically. - The
eddsa_key_pair
,ed25519_key_pair
andelligator_key_pair
functions don't wipe the passed inseed
value. Their C counterparts do. - The
crypto_aead_ctx
,crypto_blake2b
andcrypto_poly1305_ctx
C structures are opaque, represented in Haskell byAEAD_CTX
,BLAKE2B_CTX
, etc. They can be allocated withaead_ctx_malloc
,blake2b_ctx_malloc
, etc. - We export type-level constants for sizes and alignments used throughout
this module. The names of these constants are not official, in the sense
that the C library doesn't use any names for constants, and instead it
mentions numbers like
32
or64
directly.
Synopsis
- verify16 :: Ptr Word8 -> Ptr Word8 -> CInt
- verify32 :: Ptr Word8 -> Ptr Word8 -> CInt
- verify64 :: Ptr Word8 -> Ptr Word8 -> CInt
- wipe :: Ptr Word8 -> CSize -> IO ()
- aead_lock :: Ptr Word8 -> Ptr Word8 -> Ptr Word8 -> Ptr Word8 -> Ptr Word8 -> CSize -> Ptr Word8 -> CSize -> IO ()
- aead_unlock :: Ptr Word8 -> Ptr Word8 -> Ptr Word8 -> Ptr Word8 -> Ptr Word8 -> CSize -> Ptr Word8 -> CSize -> IO CInt
- newtype AEAD_CTX = AEAD_CTX (ForeignPtr AEAD_CTX)
- aead_ctx_malloc :: IO AEAD_CTX
- aead_init_x :: Ptr AEAD_CTX -> Ptr Word8 -> Ptr Word8 -> IO ()
- aead_init_djb :: Ptr AEAD_CTX -> Ptr Word8 -> Ptr Word8 -> IO ()
- aead_init_ietf :: Ptr AEAD_CTX -> Ptr Word8 -> Ptr Word8 -> IO ()
- aead_write :: Ptr AEAD_CTX -> Ptr Word8 -> Ptr Word8 -> Ptr Word8 -> CSize -> Ptr Word8 -> CSize -> IO ()
- aead_read :: Ptr AEAD_CTX -> Ptr Word8 -> Ptr Word8 -> Ptr Word8 -> CSize -> Ptr Word8 -> CSize -> IO CInt
- blake2b :: Ptr Word8 -> CSize -> Ptr Word8 -> CSize -> IO ()
- blake2b_keyed :: Ptr Word8 -> CSize -> Ptr Word8 -> CSize -> Ptr Word8 -> CSize -> IO ()
- newtype BLAKE2B_CTX = BLAKE2B_CTX (ForeignPtr BLAKE2B_CTX)
- blake2b_ctx_malloc :: IO BLAKE2B_CTX
- blake2b_init :: Ptr BLAKE2B_CTX -> CSize -> IO ()
- blake2b_keyed_init :: Ptr BLAKE2B_CTX -> CSize -> Ptr Word8 -> CSize -> IO ()
- blake2b_update :: Ptr BLAKE2B_CTX -> Ptr Word8 -> CSize -> IO ()
- blake2b_final :: Ptr BLAKE2B_CTX -> Ptr Word8 -> IO ()
- data Argon2Algorithm
- argon2 :: Ptr Word8 -> Word32 -> Argon2Algorithm -> Word32 -> Word32 -> Word32 -> Ptr Word8 -> Word32 -> Ptr Word8 -> Word32 -> Ptr Word8 -> Word32 -> Ptr Word8 -> Word32 -> IO ()
- x25519_public_key :: Ptr Word8 -> Ptr Word8 -> IO ()
- x25519 :: Ptr Word8 -> Ptr Word8 -> Ptr Word8 -> IO ()
- x25519_to_eddsa :: Ptr Word8 -> Ptr Word8 -> IO ()
- x25519_inverse :: Ptr Word8 -> Ptr Word8 -> Ptr Word8 -> IO ()
- x25519_dirty_small :: Ptr Word8 -> Ptr Word8 -> IO ()
- x25519_dirty_fast :: Ptr Word8 -> Ptr Word8 -> IO ()
- elligator_map :: Ptr Word8 -> Ptr Word8 -> IO ()
- elligator_rev :: Ptr Word8 -> Ptr Word8 -> Word8 -> IO CInt
- elligator_key_pair :: Ptr Word8 -> Ptr Word8 -> Ptr Word8 -> IO ()
- eddsa_key_pair :: Ptr Word8 -> Ptr Word8 -> Ptr Word8 -> IO ()
- eddsa_sign :: Ptr Word8 -> Ptr Word8 -> Ptr Word8 -> CSize -> IO ()
- eddsa_check :: Ptr Word8 -> Ptr Word8 -> Ptr Word8 -> CSize -> IO CInt
- eddsa_to_x25519 :: Ptr Word8 -> Ptr Word8 -> IO ()
- eddsa_trim_scalar :: Ptr Word8 -> Ptr Word8 -> IO ()
- eddsa_reduce :: Ptr Word8 -> Ptr Word8 -> IO ()
- eddsa_mul_add :: Ptr Word8 -> Ptr Word8 -> Ptr Word8 -> Ptr Word8 -> IO ()
- eddsa_scalarbase :: Ptr Word8 -> Ptr Word8 -> IO ()
- eddsa_check_equation :: Ptr Word8 -> Ptr Word8 -> Ptr Word8 -> IO CInt
- chacha20_h :: Ptr Word8 -> Ptr Word8 -> Ptr Word8 -> IO ()
- chacha20_djb :: Ptr Word8 -> Ptr Word8 -> CSize -> Ptr Word8 -> Ptr Word8 -> Word64 -> IO Word64
- chacha20_ietf :: Ptr Word8 -> Ptr Word8 -> CSize -> Ptr Word8 -> Ptr Word8 -> Word32 -> IO Word32
- chacha20_x :: Ptr Word8 -> Ptr Word8 -> CSize -> Ptr Word8 -> Ptr Word8 -> Word64 -> IO Word64
- poly1305 :: Ptr Word8 -> Ptr Word8 -> CSize -> Ptr Word8 -> IO ()
- newtype POLY1305_CTX = POLY1305_CTX (ForeignPtr POLY1305_CTX)
- poly1305_ctx_malloc :: IO POLY1305_CTX
- poly1305_init :: Ptr POLY1305_CTX -> Ptr Word8 -> IO ()
- poly1305_update :: Ptr POLY1305_CTX -> Ptr Word8 -> CSize -> IO ()
- poly1305_final :: Ptr POLY1305_CTX -> Ptr Word8 -> IO ()
- sha512 :: Ptr Word8 -> Ptr Word8 -> CSize -> IO ()
- newtype SHA512_CTX = SHA512_CTX (ForeignPtr SHA512_CTX)
- sha512_ctx_malloc :: IO SHA512_CTX
- sha512_init :: Ptr SHA512_CTX -> IO ()
- sha512_update :: Ptr SHA512_CTX -> Ptr Word8 -> CSize -> IO ()
- sha512_final :: Ptr SHA512_CTX -> Ptr Word8 -> IO ()
- sha512_hmac :: Ptr Word8 -> Ptr Word8 -> CSize -> Ptr Word8 -> CSize -> IO ()
- newtype SHA512_HMAC_CTX = SHA512_HMAC_CTX (ForeignPtr SHA512_HMAC_CTX)
- sha512_hmac_ctx_malloc :: IO SHA512_HMAC_CTX
- sha512_hmac_init :: Ptr SHA512_HMAC_CTX -> Ptr Word8 -> CSize -> IO ()
- sha512_hmac_update :: Ptr SHA512_HMAC_CTX -> Ptr Word8 -> CSize -> IO ()
- sha512_hmac_final :: Ptr SHA512_HMAC_CTX -> Ptr Word8 -> IO ()
- sha512_hkdf_expand :: Ptr Word8 -> CSize -> Ptr Word8 -> CSize -> Ptr Word8 -> CSize -> IO ()
- sha512_hkdf :: Ptr Word8 -> CSize -> Ptr Word8 -> CSize -> Ptr Word8 -> CSize -> Ptr Word8 -> CSize -> IO ()
- ed25519_key_pair :: Ptr Word8 -> Ptr Word8 -> Ptr Word8 -> IO ()
- ed25519_sign :: Ptr Word8 -> Ptr Word8 -> Ptr Word8 -> CSize -> IO ()
- ed25519_check :: Ptr Word8 -> Ptr Word8 -> Ptr Word8 -> CSize -> IO CInt
- ed25519_ph_sign :: Ptr Word8 -> Ptr Word8 -> Ptr Word8 -> IO ()
- ed25519_ph_check :: Ptr Word8 -> Ptr Word8 -> Ptr Word8 -> IO CInt
- type AEAD_CTX_SIZE = 48
- type AEAD_CTX_ALIGNMENT = 8
- type BLAKE2B_HASH_MAX_SIZE = 64
- type BLAKE2B_KEY_MAX_SIZE = 64
- type BLAKE2B_CTX_SIZE = 224
- type BLAKE2B_CTX_ALIGNMENT = 8
- type X25519_POINT_SIZE = 32
- type X25519_PUBLIC_KEY_SIZE = 32
- type X25519_SECRET_KEY_SIZE = 32
- type X25519_SHARED_SECRET_SIZE = 32
- type ED25519_SECRET_KEY_SIZE = 64
- type ED25519_PUBLIC_KEY_SIZE = 32
- type ED25519_SEED_SIZE = 32
- type ED25519_SIGNATURE_SIZE = 64
- type EDDSA_POINT_SIZE = 32
- type EDDSA_PUBLIC_KEY_SIZE = 32
- type EDDSA_SECRET_KEY_SIZE = 64
- type EDDSA_SEED_SIZE = 32
- type EDDSA_SHARED_SECRET_SIZE = 32
- type EDDSA_SIGNATURE_SIZE = 64
- type CHACHA20_OUT_SIZE = 32
- type CHACHA20_KEY_SIZE = 32
- type CHACHA20_DJB_NONCE_SIZE = 8
- type CHACHA20_IETF_NONCE_SIZE = 12
- type CHACHA20_X_NONCE_SIZE = 24
- type HCHACHA20_NONCE_SIZE = 16
- type POLY1305_KEY_SIZE = 32
- type POLY1305_MAC_SIZE = 16
- type POLY1305_CTX_SIZE = 80
- type POLY1305_CTX_ALIGNMENT = 8
- type ELLIGATOR_HIDDEN_SIZE = 32
- type ELLIGATOR_SEED_SIZE = 32
- type SHA512_HASH_SIZE = 64
- type SHA512_CTX_SIZE = 216
- type SHA512_CTX_ALIGNMENT = 8
- type SHA512_HMAC_CTX_SIZE = 344
- type SHA512_HMAC_CTX_ALIGNMENT = 8
Utils
Memory
Aead
:: Ptr Word8 |
|
-> Ptr Word8 |
|
-> Ptr Word8 |
|
-> Ptr Word8 |
|
-> Ptr Word8 |
|
-> CSize |
|
-> Ptr Word8 |
|
-> CSize |
|
-> IO () |
:: Ptr Word8 |
|
-> Ptr Word8 |
|
-> Ptr Word8 |
|
-> Ptr Word8 |
|
-> Ptr Word8 |
|
-> CSize |
|
-> Ptr Word8 |
|
-> CSize |
|
-> IO CInt |
|
Incremental
See crypto_aead_ctx
.
Allocate with aead_ctx_malloc
.
AEAD_CTX (ForeignPtr AEAD_CTX) | The constructor is exposed in case your want to obtain the You can use |
Instances
Storable AEAD_CTX Source # | Peek allocates memory using |
aead_ctx_malloc :: IO AEAD_CTX Source #
Allocated with mallocForeignPtr
, but also automatically
wipe
d when not reachable anymore, before being freed.
:: Ptr AEAD_CTX |
|
-> Ptr Word8 |
|
-> Ptr Word8 |
|
-> IO () |
:: Ptr AEAD_CTX |
|
-> Ptr Word8 |
|
-> Ptr Word8 |
|
-> IO () |
:: Ptr AEAD_CTX |
|
-> Ptr Word8 |
|
-> Ptr Word8 |
|
-> IO () |
BLAKE2b
:: Ptr Word8 |
|
-> CSize |
|
-> Ptr Word8 |
|
-> CSize |
|
-> IO () |
See crypto_blake2b()
Incremental
newtype BLAKE2B_CTX Source #
See crypto_blake2b_ctx
.
Allocate with blake2b_ctx_malloc
.
BLAKE2B_CTX (ForeignPtr BLAKE2B_CTX) | The constructor is exposed in case your want to obtain the You can use |
Instances
Storable BLAKE2B_CTX Source # | Peek allocates memory using |
Defined in Monocypher.C sizeOf :: BLAKE2B_CTX -> Int # alignment :: BLAKE2B_CTX -> Int # peekElemOff :: Ptr BLAKE2B_CTX -> Int -> IO BLAKE2B_CTX # pokeElemOff :: Ptr BLAKE2B_CTX -> Int -> BLAKE2B_CTX -> IO () # peekByteOff :: Ptr b -> Int -> IO BLAKE2B_CTX # pokeByteOff :: Ptr b -> Int -> BLAKE2B_CTX -> IO () # peek :: Ptr BLAKE2B_CTX -> IO BLAKE2B_CTX # poke :: Ptr BLAKE2B_CTX -> BLAKE2B_CTX -> IO () # |
blake2b_ctx_malloc :: IO BLAKE2B_CTX Source #
Allocated with mallocForeignPtr
, but also automatically
wipe
d when not reachable anymore, before being freed.
:: Ptr BLAKE2B_CTX |
|
-> CSize |
|
-> IO () |
:: Ptr BLAKE2B_CTX |
|
-> CSize |
|
-> Ptr Word8 |
|
-> CSize |
|
-> IO () |
:: Ptr BLAKE2B_CTX |
|
-> Ptr Word8 |
|
-> IO () |
Argon2
data Argon2Algorithm Source #
Instances
:: Ptr Word8 |
|
-> Word32 |
|
-> Argon2Algorithm |
|
-> Word32 |
|
-> Word32 |
|
-> Word32 |
|
-> Ptr Word8 |
|
-> Word32 |
|
-> Ptr Word8 |
|
-> Word32 |
|
-> Ptr Word8 |
|
-> Word32 |
|
-> Ptr Word8 |
|
-> Word32 |
|
-> IO () |
See crypto_argon2()
Contrary to the C version of crypto_argon2()
, this version takes all the
inputs individually, rather than in the separate crypto_argon2_config
,
crypto_argon2_inputs
and crypto_argon2_extras
structures, and a
sufficiently large work_area
is automatically provided.
X25519
:: Ptr Word8 |
|
-> Ptr Word8 |
|
-> IO () |
:: Ptr Word8 |
|
-> Ptr Word8 |
|
-> Ptr Word8 |
|
-> IO () |
See crypto_x25519()
:: Ptr Word8 |
|
-> Ptr Word8 |
|
-> IO () |
:: Ptr Word8 |
|
-> Ptr Word8 |
|
-> Ptr Word8 |
|
-> IO () |
:: Ptr Word8 |
|
-> Ptr Word8 |
|
-> IO () |
:: Ptr Word8 |
|
-> Ptr Word8 |
|
-> IO () |
Elligator
:: Ptr Word8 |
|
-> Ptr Word8 |
|
-> IO () |
:: Ptr Word8 |
|
-> Ptr Word8 |
|
-> Word8 |
|
-> IO CInt |
|
:: Ptr Word8 |
|
-> Ptr Word8 |
|
-> Ptr Word8 |
|
-> IO () |
See crypto_elligator_key_pair()
.
Contrary to the C version of crypto_elligator_key_pair()
, this version
does not wipe
the passed in seed
.
EdDSA
EdDSA on Curve25519 using BLAKE2b as hash algorithm.
Warning: This is not compatible with the more commonly deployed Ed25519, which is EdDSA on Curve25519 using SHA512 as hash algorithm.
:: Ptr Word8 |
|
-> Ptr Word8 |
|
-> Ptr Word8 |
|
-> IO () |
Contrary to the C version of crypto_eddsa_key_pair()
, this version
does not wipe
the passed in seed
.
:: Ptr Word8 |
|
-> Ptr Word8 |
|
-> Ptr Word8 |
|
-> CSize |
|
-> IO () |
:: Ptr Word8 |
|
-> Ptr Word8 |
|
-> IO () |
:: Ptr Word8 |
|
-> Ptr Word8 |
|
-> Ptr Word8 |
|
-> IO CInt |
|
ChaCha20
:: Ptr Word8 |
|
-> Ptr Word8 |
|
-> Ptr Word8 |
|
-> IO () |
Poly1305
:: Ptr Word8 |
|
-> Ptr Word8 |
|
-> CSize |
|
-> Ptr Word8 |
|
-> IO () |
Incremental
newtype POLY1305_CTX Source #
See crypto_poly1305
Allocate with poly1305_ctx_malloc
.
POLY1305_CTX (ForeignPtr POLY1305_CTX) | The constructor is exposed in case your want to obtain the You can use |
Instances
Storable POLY1305_CTX Source # | Peek allocates memory using |
Defined in Monocypher.C sizeOf :: POLY1305_CTX -> Int # alignment :: POLY1305_CTX -> Int # peekElemOff :: Ptr POLY1305_CTX -> Int -> IO POLY1305_CTX # pokeElemOff :: Ptr POLY1305_CTX -> Int -> POLY1305_CTX -> IO () # peekByteOff :: Ptr b -> Int -> IO POLY1305_CTX # pokeByteOff :: Ptr b -> Int -> POLY1305_CTX -> IO () # peek :: Ptr POLY1305_CTX -> IO POLY1305_CTX # poke :: Ptr POLY1305_CTX -> POLY1305_CTX -> IO () # |
poly1305_ctx_malloc :: IO POLY1305_CTX Source #
Allocated with mallocForeignPtr
, but also automatically
wipe
d when not reachable anymore, before being freed.
:: Ptr POLY1305_CTX |
|
-> Ptr Word8 |
|
-> IO () |
:: Ptr POLY1305_CTX |
|
-> Ptr Word8 |
|
-> IO () |
SHA512
:: Ptr Word8 |
|
-> Ptr Word8 |
|
-> CSize |
|
-> IO () |
See crypto_sha512()
.
Incremental
newtype SHA512_CTX Source #
Allocate with sha512_ctx_malloc
.
SHA512_CTX (ForeignPtr SHA512_CTX) | The constructor is exposed in case your want to obtain the You can use |
Instances
Storable SHA512_CTX Source # | Peek allocates memory using |
Defined in Monocypher.C sizeOf :: SHA512_CTX -> Int # alignment :: SHA512_CTX -> Int # peekElemOff :: Ptr SHA512_CTX -> Int -> IO SHA512_CTX # pokeElemOff :: Ptr SHA512_CTX -> Int -> SHA512_CTX -> IO () # peekByteOff :: Ptr b -> Int -> IO SHA512_CTX # pokeByteOff :: Ptr b -> Int -> SHA512_CTX -> IO () # peek :: Ptr SHA512_CTX -> IO SHA512_CTX # poke :: Ptr SHA512_CTX -> SHA512_CTX -> IO () # |
sha512_ctx_malloc :: IO SHA512_CTX Source #
Allocated with mallocForeignPtr
, but also automatically
wipe
d when not reachable anymore, before being freed.
:: Ptr SHA512_CTX | crypto_sha512_ctx * ctx |
-> Ptr Word8 |
|
-> IO () |
HMAC-SHA512
:: Ptr Word8 |
|
-> Ptr Word8 |
|
-> CSize |
|
-> Ptr Word8 |
|
-> CSize |
|
-> IO () |
See crypto_sha512_hmac()
.
Incremental
newtype SHA512_HMAC_CTX Source #
Allocate with sha512_hmac_ctx_malloc
.
SHA512_HMAC_CTX (ForeignPtr SHA512_HMAC_CTX) | The constructor is exposed in case your want to obtain the You can use |
Instances
Storable SHA512_HMAC_CTX Source # | Peek allocates memory using |
Defined in Monocypher.C sizeOf :: SHA512_HMAC_CTX -> Int # alignment :: SHA512_HMAC_CTX -> Int # peekElemOff :: Ptr SHA512_HMAC_CTX -> Int -> IO SHA512_HMAC_CTX # pokeElemOff :: Ptr SHA512_HMAC_CTX -> Int -> SHA512_HMAC_CTX -> IO () # peekByteOff :: Ptr b -> Int -> IO SHA512_HMAC_CTX # pokeByteOff :: Ptr b -> Int -> SHA512_HMAC_CTX -> IO () # peek :: Ptr SHA512_HMAC_CTX -> IO SHA512_HMAC_CTX # poke :: Ptr SHA512_HMAC_CTX -> SHA512_HMAC_CTX -> IO () # |
sha512_hmac_ctx_malloc :: IO SHA512_HMAC_CTX Source #
Allocated with mallocForeignPtr
, but also automatically
wipe
d when not reachable anymore, before being freed.
:: Ptr SHA512_HMAC_CTX |
|
-> Ptr Word8 |
|
-> IO () |
HKDF-SHA512
:: Ptr Word8 |
|
-> CSize |
|
-> Ptr Word8 |
|
-> CSize |
|
-> Ptr Word8 |
|
-> CSize |
|
-> Ptr Word8 |
|
-> CSize |
|
-> IO () |
See crypto_sha512_hkdf()
.
Ed25519
EdDSA on Curve25519 using SHA512 as hash algorithm.
:: Ptr Word8 |
|
-> Ptr Word8 |
|
-> Ptr Word8 |
|
-> IO () |
Contrary to the C version of crypto_ed25519_key_pair()
, this version
does not wipe
the passed in seed
.
:: Ptr Word8 |
|
-> Ptr Word8 |
|
-> Ptr Word8 |
|
-> CSize |
|
-> IO () |
See crypto_ed5519_sing()
.
Ed25519ph
Pre-hashed EdDSA on Curve25519 using SHA512 as hash algorithm.
Warning: This is not compatible with the more commonly deployed Ed25519, which is EdDSA on Curve25519 using SHA512 as hash algorithm without pre-hashing.
:: Ptr Word8 |
|
-> Ptr Word8 |
|
-> Ptr Word8 |
|
-> IO () |
:: Ptr Word8 |
|
-> Ptr Word8 |
|
-> Ptr Word8 |
|
-> IO CInt |
|
Constants
type AEAD_CTX_SIZE = 48 Source #
type AEAD_CTX_ALIGNMENT = 8 Source #
type BLAKE2B_HASH_MAX_SIZE = 64 Source #
type BLAKE2B_KEY_MAX_SIZE = 64 Source #
type BLAKE2B_CTX_SIZE = 224 Source #
type BLAKE2B_CTX_ALIGNMENT = 8 Source #
type X25519_POINT_SIZE = 32 Source #
type X25519_PUBLIC_KEY_SIZE = 32 Source #
type X25519_SECRET_KEY_SIZE = 32 Source #
type X25519_SHARED_SECRET_SIZE = 32 Source #
type ED25519_SECRET_KEY_SIZE = 64 Source #
type ED25519_PUBLIC_KEY_SIZE = 32 Source #
type ED25519_SEED_SIZE = 32 Source #
type ED25519_SIGNATURE_SIZE = 64 Source #
type EDDSA_POINT_SIZE = 32 Source #
type EDDSA_PUBLIC_KEY_SIZE = 32 Source #
type EDDSA_SECRET_KEY_SIZE = 64 Source #
type EDDSA_SEED_SIZE = 32 Source #
type EDDSA_SHARED_SECRET_SIZE = 32 Source #
type EDDSA_SIGNATURE_SIZE = 64 Source #
type CHACHA20_OUT_SIZE = 32 Source #
type CHACHA20_KEY_SIZE = 32 Source #
type CHACHA20_DJB_NONCE_SIZE = 8 Source #
type CHACHA20_IETF_NONCE_SIZE = 12 Source #
type CHACHA20_X_NONCE_SIZE = 24 Source #
type HCHACHA20_NONCE_SIZE = 16 Source #
type POLY1305_KEY_SIZE = 32 Source #
type POLY1305_MAC_SIZE = 16 Source #
type POLY1305_CTX_SIZE = 80 Source #
type POLY1305_CTX_ALIGNMENT = 8 Source #
type ELLIGATOR_HIDDEN_SIZE = 32 Source #
type ELLIGATOR_SEED_SIZE = 32 Source #
type SHA512_HASH_SIZE = 64 Source #
type SHA512_CTX_SIZE = 216 Source #
type SHA512_CTX_ALIGNMENT = 8 Source #
type SHA512_HMAC_CTX_SIZE = 344 Source #
type SHA512_HMAC_CTX_ALIGNMENT = 8 Source #