tomcrypt/src/headers/tomcrypt_misc.h

104 lines
3.1 KiB
C
Raw Normal View History

2007-07-20 17:48:02 +00:00
/* ---- LTC_BASE64 Routines ---- */
#ifdef LTC_BASE64
2012-07-26 14:43:15 +02:00
int base64_encode(const unsigned char *in, unsigned long len,
2004-12-30 23:55:53 +00:00
unsigned char *out, unsigned long *outlen);
2012-07-26 14:43:15 +02:00
int base64_decode(const unsigned char *in, unsigned long len,
2004-12-30 23:55:53 +00:00
unsigned char *out, unsigned long *outlen);
#endif
#ifdef LTC_BASE64_URL
2013-10-27 21:49:26 +02:00
int base64url_encode(const unsigned char *in, unsigned long len,
unsigned char *out, unsigned long *outlen);
int base64url_decode(const unsigned char *in, unsigned long len,
unsigned char *out, unsigned long *outlen);
#endif
2013-10-27 21:49:26 +02:00
2013-08-14 15:47:07 +02:00
/* ===> LTC_HKDF -- RFC5869 HMAC-based Key Derivation Function <=== */
#ifdef LTC_HKDF
int hkdf_test(void);
int hkdf_extract(int hash_idx,
const unsigned char *salt, unsigned long saltlen,
const unsigned char *in, unsigned long inlen,
unsigned char *out, unsigned long *outlen);
int hkdf_expand(int hash_idx,
const unsigned char *info, unsigned long infolen,
const unsigned char *in, unsigned long inlen,
unsigned char *out, unsigned long outlen);
int hkdf(int hash_idx,
const unsigned char *salt, unsigned long saltlen,
const unsigned char *info, unsigned long infolen,
const unsigned char *in, unsigned long inlen,
unsigned char *out, unsigned long outlen);
#endif /* LTC_HKDF */
2004-12-30 23:55:53 +00:00
/* ---- MEM routines ---- */
2014-11-12 23:59:27 +01:00
int mem_neq(const void *a, const void *b, size_t len);
void zeromem(volatile void *dst, size_t len);
2004-12-30 23:55:53 +00:00
void burn_stack(unsigned long len);
const char *error_to_string(int err);
extern const char *crypt_build_settings;
2005-06-09 00:08:13 +00:00
2006-11-17 14:21:24 +00:00
/* ---- HMM ---- */
int crypt_fsa(void *mp, ...);
2014-03-08 12:16:07 -08:00
/* ---- Dynamic language support ---- */
int crypt_get_constant(const char* namein, int *valueout);
int crypt_list_all_constants(char *names_list, unsigned int *names_list_size);
2014-03-08 12:16:07 -08:00
int crypt_get_size(const char* namein, unsigned int *sizeout);
int crypt_list_all_sizes(char *names_list, unsigned int *names_list_size);
2014-03-08 12:16:07 -08:00
#ifdef LTM_DESC
2014-03-11 22:25:27 -07:00
void init_LTM(void);
#endif
#ifdef TFM_DESC
2014-03-11 22:25:27 -07:00
void init_TFM(void);
#endif
/* *** use of GMP is untested ***
#ifdef GMP_DESC
void init_GMP(void);
#endif
*/
2014-03-11 22:25:27 -07:00
2015-08-22 17:29:46 +02:00
#ifdef LTC_ADLER32
typedef struct adler32_state_s
{
unsigned short s[2];
} adler32_state;
void adler32_init(adler32_state *ctx);
void adler32_update(adler32_state *ctx, const unsigned char *input, unsigned long length);
void adler32_finish(adler32_state *ctx, void *hash, unsigned long size);
int adler32_test(void);
#endif
2014-03-11 22:25:27 -07:00
2015-08-23 22:02:42 +02:00
#ifdef LTC_CRC32
typedef struct crc32_state_s
{
ulong32 crc;
} crc32_state;
void crc32_init(crc32_state *ctx);
void crc32_update(crc32_state *ctx, const unsigned char *input, unsigned long length);
void crc32_finish(crc32_state *ctx, void *hash, unsigned long size);
int crc32_test(void);
#endif
2015-08-23 19:45:26 +02:00
/* yeah it's not exactly in misc in the library, but in testprof/x86_prof.c */
#if defined(LTC_TEST) && defined(LTC_TEST_DBG)
2016-04-03 02:39:25 +02:00
void print_hex(const char* what, const void* p, const unsigned long l);
2015-08-23 19:45:26 +02:00
#endif
2005-06-09 00:08:13 +00:00
/* $Source$ */
/* $Revision$ */
/* $Date$ */