mirror of
https://github.com/VCMP-SqMod/SqMod.git
synced 2025-02-07 13:27:13 +01:00
119 lines
3.9 KiB
C
119 lines
3.9 KiB
C
#ifndef crypto_generichash_blake2b_H
|
|
#define crypto_generichash_blake2b_H
|
|
|
|
#include <stddef.h>
|
|
#include <stdint.h>
|
|
#include <stdlib.h>
|
|
|
|
#include "export.h"
|
|
|
|
#ifdef __cplusplus
|
|
# ifdef __GNUC__
|
|
# pragma GCC diagnostic ignored "-Wlong-long"
|
|
# endif
|
|
extern "C" {
|
|
#endif
|
|
|
|
#if defined(__IBMC__) || defined(__SUNPRO_C) || defined(__SUNPRO_CC)
|
|
# pragma pack(1)
|
|
#else
|
|
# pragma pack(push, 1)
|
|
#endif
|
|
|
|
typedef struct CRYPTO_ALIGN(64) crypto_generichash_blake2b_state {
|
|
unsigned char opaque[384];
|
|
} crypto_generichash_blake2b_state;
|
|
|
|
#if defined(__IBMC__) || defined(__SUNPRO_C) || defined(__SUNPRO_CC)
|
|
# pragma pack()
|
|
#else
|
|
# pragma pack(pop)
|
|
#endif
|
|
|
|
#define crypto_generichash_blake2b_BYTES_MIN 16U
|
|
SODIUM_EXPORT
|
|
size_t crypto_generichash_blake2b_bytes_min(void);
|
|
|
|
#define crypto_generichash_blake2b_BYTES_MAX 64U
|
|
SODIUM_EXPORT
|
|
size_t crypto_generichash_blake2b_bytes_max(void);
|
|
|
|
#define crypto_generichash_blake2b_BYTES 32U
|
|
SODIUM_EXPORT
|
|
size_t crypto_generichash_blake2b_bytes(void);
|
|
|
|
#define crypto_generichash_blake2b_KEYBYTES_MIN 16U
|
|
SODIUM_EXPORT
|
|
size_t crypto_generichash_blake2b_keybytes_min(void);
|
|
|
|
#define crypto_generichash_blake2b_KEYBYTES_MAX 64U
|
|
SODIUM_EXPORT
|
|
size_t crypto_generichash_blake2b_keybytes_max(void);
|
|
|
|
#define crypto_generichash_blake2b_KEYBYTES 32U
|
|
SODIUM_EXPORT
|
|
size_t crypto_generichash_blake2b_keybytes(void);
|
|
|
|
#define crypto_generichash_blake2b_SALTBYTES 16U
|
|
SODIUM_EXPORT
|
|
size_t crypto_generichash_blake2b_saltbytes(void);
|
|
|
|
#define crypto_generichash_blake2b_PERSONALBYTES 16U
|
|
SODIUM_EXPORT
|
|
size_t crypto_generichash_blake2b_personalbytes(void);
|
|
|
|
SODIUM_EXPORT
|
|
size_t crypto_generichash_blake2b_statebytes(void);
|
|
|
|
SODIUM_EXPORT
|
|
int crypto_generichash_blake2b(unsigned char *out, size_t outlen,
|
|
const unsigned char *in,
|
|
unsigned long long inlen,
|
|
const unsigned char *key, size_t keylen)
|
|
__attribute__ ((nonnull(1)));
|
|
|
|
SODIUM_EXPORT
|
|
int crypto_generichash_blake2b_salt_personal(unsigned char *out, size_t outlen,
|
|
const unsigned char *in,
|
|
unsigned long long inlen,
|
|
const unsigned char *key,
|
|
size_t keylen,
|
|
const unsigned char *salt,
|
|
const unsigned char *personal)
|
|
__attribute__ ((nonnull(1)));
|
|
|
|
SODIUM_EXPORT
|
|
int crypto_generichash_blake2b_init(crypto_generichash_blake2b_state *state,
|
|
const unsigned char *key,
|
|
const size_t keylen, const size_t outlen)
|
|
__attribute__ ((nonnull(1)));
|
|
|
|
SODIUM_EXPORT
|
|
int crypto_generichash_blake2b_init_salt_personal(crypto_generichash_blake2b_state *state,
|
|
const unsigned char *key,
|
|
const size_t keylen, const size_t outlen,
|
|
const unsigned char *salt,
|
|
const unsigned char *personal)
|
|
__attribute__ ((nonnull(1)));
|
|
|
|
SODIUM_EXPORT
|
|
int crypto_generichash_blake2b_update(crypto_generichash_blake2b_state *state,
|
|
const unsigned char *in,
|
|
unsigned long long inlen)
|
|
__attribute__ ((nonnull(1)));
|
|
|
|
SODIUM_EXPORT
|
|
int crypto_generichash_blake2b_final(crypto_generichash_blake2b_state *state,
|
|
unsigned char *out,
|
|
const size_t outlen) __attribute__ ((nonnull));
|
|
|
|
SODIUM_EXPORT
|
|
void crypto_generichash_blake2b_keygen(unsigned char k[crypto_generichash_blake2b_KEYBYTES])
|
|
__attribute__ ((nonnull));
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif
|