1*ba1276acSMatthew Dillon /* $OpenBSD: crypto_api.h,v 1.8 2023/01/15 23:05:32 djm Exp $ */ 236e94dc5SPeter Avalos 336e94dc5SPeter Avalos /* 436e94dc5SPeter Avalos * Assembled from generated headers and source files by Markus Friedl. 536e94dc5SPeter Avalos * Placed in the public domain. 636e94dc5SPeter Avalos */ 736e94dc5SPeter Avalos 836e94dc5SPeter Avalos #ifndef crypto_api_h 936e94dc5SPeter Avalos #define crypto_api_h 1036e94dc5SPeter Avalos 11664f4763Szrj #include "includes.h" 12664f4763Szrj 1336e94dc5SPeter Avalos #ifdef HAVE_STDINT_H 1436e94dc5SPeter Avalos # include <stdint.h> 1536e94dc5SPeter Avalos #endif 1636e94dc5SPeter Avalos #include <stdlib.h> 1736e94dc5SPeter Avalos 18664f4763Szrj typedef int8_t crypto_int8; 19664f4763Szrj typedef uint8_t crypto_uint8; 20664f4763Szrj typedef int16_t crypto_int16; 21664f4763Szrj typedef uint16_t crypto_uint16; 2236e94dc5SPeter Avalos typedef int32_t crypto_int32; 2336e94dc5SPeter Avalos typedef uint32_t crypto_uint32; 2450a69bb5SSascha Wildner typedef int64_t crypto_int64; 2550a69bb5SSascha Wildner typedef uint64_t crypto_uint64; 2636e94dc5SPeter Avalos 2736e94dc5SPeter Avalos #define randombytes(buf, buf_len) arc4random_buf((buf), (buf_len)) 28664f4763Szrj #define small_random32() arc4random() 2936e94dc5SPeter Avalos 3036e94dc5SPeter Avalos #define crypto_hash_sha512_BYTES 64U 3136e94dc5SPeter Avalos 3236e94dc5SPeter Avalos int crypto_hash_sha512(unsigned char *, const unsigned char *, 3336e94dc5SPeter Avalos unsigned long long); 3436e94dc5SPeter Avalos 3536e94dc5SPeter Avalos #define crypto_sign_ed25519_SECRETKEYBYTES 64U 3636e94dc5SPeter Avalos #define crypto_sign_ed25519_PUBLICKEYBYTES 32U 3736e94dc5SPeter Avalos #define crypto_sign_ed25519_BYTES 64U 3836e94dc5SPeter Avalos 3936e94dc5SPeter Avalos int crypto_sign_ed25519(unsigned char *, unsigned long long *, 4036e94dc5SPeter Avalos const unsigned char *, unsigned long long, const unsigned char *); 4136e94dc5SPeter Avalos int crypto_sign_ed25519_open(unsigned char *, unsigned long long *, 4236e94dc5SPeter Avalos const unsigned char *, unsigned long long, const unsigned char *); 4336e94dc5SPeter Avalos int crypto_sign_ed25519_keypair(unsigned char *, unsigned char *); 4436e94dc5SPeter Avalos 4550a69bb5SSascha Wildner #define crypto_kem_sntrup761_PUBLICKEYBYTES 1158 4650a69bb5SSascha Wildner #define crypto_kem_sntrup761_SECRETKEYBYTES 1763 4750a69bb5SSascha Wildner #define crypto_kem_sntrup761_CIPHERTEXTBYTES 1039 4850a69bb5SSascha Wildner #define crypto_kem_sntrup761_BYTES 32 49664f4763Szrj 5050a69bb5SSascha Wildner int crypto_kem_sntrup761_enc(unsigned char *cstr, unsigned char *k, 51664f4763Szrj const unsigned char *pk); 5250a69bb5SSascha Wildner int crypto_kem_sntrup761_dec(unsigned char *k, 53664f4763Szrj const unsigned char *cstr, const unsigned char *sk); 5450a69bb5SSascha Wildner int crypto_kem_sntrup761_keypair(unsigned char *pk, unsigned char *sk); 55664f4763Szrj 5636e94dc5SPeter Avalos #endif /* crypto_api_h */ 57