License | BSD3 |
---|---|
Maintainer | hvr@gnu.org |
Safe Haskell | Unsafe |
Language | Haskell2010 |
This module provides low-level access to parts of the C API
Prefer the Crypto.Argon2 API when possible.
- argon2_hash :: Word32 -> Word32 -> Word32 -> Ptr a -> CSize -> Ptr b -> CSize -> Ptr c -> CSize -> CString -> CSize -> Argon2_type -> Argon2_version -> IO CInt
- argon2_verify :: CString -> Ptr a -> CSize -> Argon2_type -> IO CInt
- argon2_encodedlen :: Word32 -> Word32 -> Word32 -> Word32 -> Word32 -> Argon2_type -> CSize
- type Argon2_type = Word32
- pattern Argon2_d :: forall a. (Num a, Eq a) => a
- pattern Argon2_i :: forall a. (Num a, Eq a) => a
- pattern Argon2_id :: forall a. (Num a, Eq a) => a
- type Argon2_version = Word32
- pattern ARGON2_VERSION_10 :: forall a. (Num a, Eq a) => a
- pattern ARGON2_VERSION_13 :: forall a. (Num a, Eq a) => a
- pattern ARGON2_VERSION_NUMBER :: forall a. (Num a, Eq a) => a
- pattern ARGON2_OK :: forall a. (Num a, Eq a) => a
- pattern ARGON2_OUTPUT_PTR_NULL :: forall a. (Num a, Eq a) => a
- pattern ARGON2_OUTPUT_TOO_SHORT :: forall a. (Num a, Eq a) => a
- pattern ARGON2_OUTPUT_TOO_LONG :: forall a. (Num a, Eq a) => a
- pattern ARGON2_PWD_TOO_SHORT :: forall a. (Num a, Eq a) => a
- pattern ARGON2_PWD_TOO_LONG :: forall a. (Num a, Eq a) => a
- pattern ARGON2_SALT_TOO_SHORT :: forall a. (Num a, Eq a) => a
- pattern ARGON2_SALT_TOO_LONG :: forall a. (Num a, Eq a) => a
- pattern ARGON2_AD_TOO_SHORT :: forall a. (Num a, Eq a) => a
- pattern ARGON2_AD_TOO_LONG :: forall a. (Num a, Eq a) => a
- pattern ARGON2_SECRET_TOO_SHORT :: forall a. (Num a, Eq a) => a
- pattern ARGON2_SECRET_TOO_LONG :: forall a. (Num a, Eq a) => a
- pattern ARGON2_TIME_TOO_SMALL :: forall a. (Num a, Eq a) => a
- pattern ARGON2_TIME_TOO_LARGE :: forall a. (Num a, Eq a) => a
- pattern ARGON2_MEMORY_TOO_LITTLE :: forall a. (Num a, Eq a) => a
- pattern ARGON2_MEMORY_TOO_MUCH :: forall a. (Num a, Eq a) => a
- pattern ARGON2_LANES_TOO_FEW :: forall a. (Num a, Eq a) => a
- pattern ARGON2_LANES_TOO_MANY :: forall a. (Num a, Eq a) => a
- pattern ARGON2_PWD_PTR_MISMATCH :: forall a. (Num a, Eq a) => a
- pattern ARGON2_SALT_PTR_MISMATCH :: forall a. (Num a, Eq a) => a
- pattern ARGON2_SECRET_PTR_MISMATCH :: forall a. (Num a, Eq a) => a
- pattern ARGON2_AD_PTR_MISMATCH :: forall a. (Num a, Eq a) => a
- pattern ARGON2_MEMORY_ALLOCATION_ERROR :: forall a. (Num a, Eq a) => a
- pattern ARGON2_FREE_MEMORY_CBK_NULL :: forall a. (Num a, Eq a) => a
- pattern ARGON2_ALLOCATE_MEMORY_CBK_NULL :: forall a. (Num a, Eq a) => a
- pattern ARGON2_INCORRECT_PARAMETER :: forall a. (Num a, Eq a) => a
- pattern ARGON2_INCORRECT_TYPE :: forall a. (Num a, Eq a) => a
- pattern ARGON2_OUT_PTR_MISMATCH :: forall a. (Num a, Eq a) => a
- pattern ARGON2_THREADS_TOO_FEW :: forall a. (Num a, Eq a) => a
- pattern ARGON2_THREADS_TOO_MANY :: forall a. (Num a, Eq a) => a
- pattern ARGON2_MISSING_ARGS :: forall a. (Num a, Eq a) => a
- pattern ARGON2_ENCODING_FAIL :: forall a. (Num a, Eq a) => a
- pattern ARGON2_DECODING_FAIL :: forall a. (Num a, Eq a) => a
- pattern ARGON2_THREAD_FAIL :: forall a. (Num a, Eq a) => a
- pattern ARGON2_DECODING_LENGTH_FAIL :: forall a. (Num a, Eq a) => a
- pattern ARGON2_VERIFY_MISMATCH :: forall a. (Num a, Eq a) => a
- pattern ARGON2_MIN_LANES :: forall a. (Num a, Eq a) => a
- pattern ARGON2_MAX_LANES :: forall a. (Num a, Eq a) => a
- pattern ARGON2_MIN_THREADS :: forall a. (Num a, Eq a) => a
- pattern ARGON2_MAX_THREADS :: forall a. (Num a, Eq a) => a
- pattern ARGON2_SYNC_POINTS :: forall a. (Num a, Eq a) => a
- pattern ARGON2_MIN_OUTLEN :: forall a. (Num a, Eq a) => a
- pattern ARGON2_MAX_OUTLEN :: forall a. (Num a, Eq a) => a
- pattern ARGON2_MIN_MEMORY :: forall a. (Num a, Eq a) => a
- pattern ARGON2_MAX_MEMORY_BITS :: forall a. (Num a, Eq a) => a
- pattern ARGON2_MAX_MEMORY :: forall a. (Num a, Eq a) => a
- pattern ARGON2_MIN_TIME :: forall a. (Num a, Eq a) => a
- pattern ARGON2_MAX_TIME :: forall a. (Num a, Eq a) => a
- pattern ARGON2_MIN_PWD_LENGTH :: forall a. (Num a, Eq a) => a
- pattern ARGON2_MAX_PWD_LENGTH :: forall a. (Num a, Eq a) => a
- pattern ARGON2_MIN_AD_LENGTH :: forall a. (Num a, Eq a) => a
- pattern ARGON2_MAX_AD_LENGTH :: forall a. (Num a, Eq a) => a
- pattern ARGON2_MIN_SALT_LENGTH :: forall a. (Num a, Eq a) => a
- pattern ARGON2_MAX_SALT_LENGTH :: forall a. (Num a, Eq a) => a
- pattern ARGON2_MIN_SECRET :: forall a. (Num a, Eq a) => a
- pattern ARGON2_MAX_SECRET :: forall a. (Num a, Eq a) => a
libargon2
functions
argon2_hash :: Word32 -> Word32 -> Word32 -> Ptr a -> CSize -> Ptr b -> CSize -> Ptr c -> CSize -> CString -> CSize -> Argon2_type -> Argon2_version -> IO CInt Source #
Compute Argon2 hash
int argon2_hash(const uint32_t t_cost, const uint32_t m_cost, const uint32_t parallelism, const void *pwd, const size_t pwdlen, const void *salt, const size_t saltlen, void *hash, const size_t hashlen, char *encoded, const size_t encodedlen, argon2_type type, const uint32_t version);
Parameters
- t_cost
- Number of iterations
- m_cost
- Sets memory usage to m_cost kibibytes
- parallelism
- Number of threads and compute lanes
- pwd
- Pointer to password
- pwdlen
- Password size in bytes
- salt
- Pointer to salt
- saltlen
- Salt size in bytes
- hash
- Buffer where to write the raw hash
- hashlen
- Desired length of the hash in bytes
- encoded
- Buffer where to write the encoded hash
- encodedlen
- Size of the buffer (thus max size of the encoded hash)
- type
- Variant of Argon2 hash
- version
- Version of Argon2 specification
argon2_verify :: CString -> Ptr a -> CSize -> Argon2_type -> IO CInt Source #
Verify encoded hash
int argon2_verify(const char *encoded, const void *pwd, const size_t pwdlen, argon2_type type);
Parameters
- encoded
- Pointer to zero-terminated encoded hash
- pwd
- Pointer to password
- pwdlen
- Password size in bytes
- type
- Variant of Argon2 hash
argon2_encodedlen :: Word32 -> Word32 -> Word32 -> Word32 -> Word32 -> Argon2_type -> CSize Source #
Compute size of encoded hash
size_t argon2_encodedlen(uint32_t t_cost, uint32_t m_cost, uint32_t parallelism, uint32_t saltlen, uint32_t hashlen, argon2_type type);
Parameters
- t_cost
- Number of iterations
- m_cost
- Sets memory usage to m_cost kibibytes
- parallelism
- Number of threads and compute lanes
- salt
- Pointer to salt
- saltlen
- Salt size in bytes
- hashlen
- Desired length of the hash in bytes
- type
- Variant of Argon2 hash
libargon2
API typedefs
argon2_type
type Argon2_type = Word32 Source #
argon2_version
type Argon2_version = Word32 Source #
pattern ARGON2_VERSION_10 :: forall a. (Num a, Eq a) => a Source #
pattern ARGON2_VERSION_13 :: forall a. (Num a, Eq a) => a Source #
pattern ARGON2_VERSION_NUMBER :: forall a. (Num a, Eq a) => a Source #
argon2_error_codes
pattern ARGON2_OUTPUT_PTR_NULL :: forall a. (Num a, Eq a) => a Source #
pattern ARGON2_OUTPUT_TOO_SHORT :: forall a. (Num a, Eq a) => a Source #
pattern ARGON2_OUTPUT_TOO_LONG :: forall a. (Num a, Eq a) => a Source #
pattern ARGON2_PWD_TOO_SHORT :: forall a. (Num a, Eq a) => a Source #
pattern ARGON2_PWD_TOO_LONG :: forall a. (Num a, Eq a) => a Source #
pattern ARGON2_SALT_TOO_SHORT :: forall a. (Num a, Eq a) => a Source #
pattern ARGON2_SALT_TOO_LONG :: forall a. (Num a, Eq a) => a Source #
pattern ARGON2_AD_TOO_SHORT :: forall a. (Num a, Eq a) => a Source #
pattern ARGON2_AD_TOO_LONG :: forall a. (Num a, Eq a) => a Source #
pattern ARGON2_SECRET_TOO_SHORT :: forall a. (Num a, Eq a) => a Source #
pattern ARGON2_SECRET_TOO_LONG :: forall a. (Num a, Eq a) => a Source #
pattern ARGON2_TIME_TOO_SMALL :: forall a. (Num a, Eq a) => a Source #
pattern ARGON2_TIME_TOO_LARGE :: forall a. (Num a, Eq a) => a Source #
pattern ARGON2_MEMORY_TOO_LITTLE :: forall a. (Num a, Eq a) => a Source #
pattern ARGON2_MEMORY_TOO_MUCH :: forall a. (Num a, Eq a) => a Source #
pattern ARGON2_LANES_TOO_FEW :: forall a. (Num a, Eq a) => a Source #
pattern ARGON2_LANES_TOO_MANY :: forall a. (Num a, Eq a) => a Source #
pattern ARGON2_PWD_PTR_MISMATCH :: forall a. (Num a, Eq a) => a Source #
pattern ARGON2_SALT_PTR_MISMATCH :: forall a. (Num a, Eq a) => a Source #
pattern ARGON2_SECRET_PTR_MISMATCH :: forall a. (Num a, Eq a) => a Source #
pattern ARGON2_AD_PTR_MISMATCH :: forall a. (Num a, Eq a) => a Source #
pattern ARGON2_MEMORY_ALLOCATION_ERROR :: forall a. (Num a, Eq a) => a Source #
pattern ARGON2_FREE_MEMORY_CBK_NULL :: forall a. (Num a, Eq a) => a Source #
pattern ARGON2_ALLOCATE_MEMORY_CBK_NULL :: forall a. (Num a, Eq a) => a Source #
pattern ARGON2_INCORRECT_PARAMETER :: forall a. (Num a, Eq a) => a Source #
pattern ARGON2_INCORRECT_TYPE :: forall a. (Num a, Eq a) => a Source #
pattern ARGON2_OUT_PTR_MISMATCH :: forall a. (Num a, Eq a) => a Source #
pattern ARGON2_THREADS_TOO_FEW :: forall a. (Num a, Eq a) => a Source #
pattern ARGON2_THREADS_TOO_MANY :: forall a. (Num a, Eq a) => a Source #
pattern ARGON2_MISSING_ARGS :: forall a. (Num a, Eq a) => a Source #
pattern ARGON2_ENCODING_FAIL :: forall a. (Num a, Eq a) => a Source #
pattern ARGON2_DECODING_FAIL :: forall a. (Num a, Eq a) => a Source #
pattern ARGON2_THREAD_FAIL :: forall a. (Num a, Eq a) => a Source #
pattern ARGON2_DECODING_LENGTH_FAIL :: forall a. (Num a, Eq a) => a Source #
pattern ARGON2_VERIFY_MISMATCH :: forall a. (Num a, Eq a) => a Source #
libargon2
limits & constants
pattern ARGON2_MIN_LANES :: forall a. (Num a, Eq a) => a Source #
pattern ARGON2_MAX_LANES :: forall a. (Num a, Eq a) => a Source #
pattern ARGON2_MIN_THREADS :: forall a. (Num a, Eq a) => a Source #
pattern ARGON2_MAX_THREADS :: forall a. (Num a, Eq a) => a Source #
pattern ARGON2_SYNC_POINTS :: forall a. (Num a, Eq a) => a Source #
pattern ARGON2_MIN_OUTLEN :: forall a. (Num a, Eq a) => a Source #
pattern ARGON2_MAX_OUTLEN :: forall a. (Num a, Eq a) => a Source #
pattern ARGON2_MIN_MEMORY :: forall a. (Num a, Eq a) => a Source #
pattern ARGON2_MAX_MEMORY_BITS :: forall a. (Num a, Eq a) => a Source #
pattern ARGON2_MAX_MEMORY :: forall a. (Num a, Eq a) => a Source #
pattern ARGON2_MIN_TIME :: forall a. (Num a, Eq a) => a Source #
pattern ARGON2_MAX_TIME :: forall a. (Num a, Eq a) => a Source #
pattern ARGON2_MIN_PWD_LENGTH :: forall a. (Num a, Eq a) => a Source #
pattern ARGON2_MAX_PWD_LENGTH :: forall a. (Num a, Eq a) => a Source #
pattern ARGON2_MIN_AD_LENGTH :: forall a. (Num a, Eq a) => a Source #
pattern ARGON2_MAX_AD_LENGTH :: forall a. (Num a, Eq a) => a Source #
pattern ARGON2_MIN_SALT_LENGTH :: forall a. (Num a, Eq a) => a Source #
pattern ARGON2_MAX_SALT_LENGTH :: forall a. (Num a, Eq a) => a Source #
pattern ARGON2_MIN_SECRET :: forall a. (Num a, Eq a) => a Source #
pattern ARGON2_MAX_SECRET :: forall a. (Num a, Eq a) => a Source #