diff options
author | djm@openbsd.org <djm@openbsd.org> | 2019-01-21 10:20:12 +0000 |
---|---|---|
committer | Damien Miller <djm@mindrot.org> | 2019-01-21 22:07:02 +1100 |
commit | dfd591618cdf2c96727ac0eb65f89cf54af0d97e (patch) | |
tree | 59700563da0dc6f1de649394ffb4c787710eda5a /crypto_api.h | |
parent | b1b2ff4ed559051d1035419f8f236275fa66d5d6 (diff) |
upstream: Add support for a PQC KEX/KEM:
sntrup4591761x25519-sha512@tinyssh.org using the Streamlined NTRU Prime
4591^761 implementation from SUPERCOP coupled with X25519 as a stop-loss. Not
enabled by default.
introduce KEM API; a simplified framework for DH-ish KEX methods.
from markus@ feedback & ok djm@
OpenBSD-Commit-ID: d687f76cffd3561dd73eb302d17a1c3bf321d1a7
Diffstat (limited to 'crypto_api.h')
-rw-r--r-- | crypto_api.h | 18 |
1 files changed, 17 insertions, 1 deletions
diff --git a/crypto_api.h b/crypto_api.h index 7f45bbd69..eb05251ff 100644 --- a/crypto_api.h +++ b/crypto_api.h | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: crypto_api.h,v 1.4 2017/12/14 21:07:39 naddy Exp $ */ | 1 | /* $OpenBSD: crypto_api.h,v 1.5 2019/01/21 10:20:12 djm Exp $ */ |
2 | 2 | ||
3 | /* | 3 | /* |
4 | * Assembled from generated headers and source files by Markus Friedl. | 4 | * Assembled from generated headers and source files by Markus Friedl. |
@@ -15,10 +15,15 @@ | |||
15 | #endif | 15 | #endif |
16 | #include <stdlib.h> | 16 | #include <stdlib.h> |
17 | 17 | ||
18 | typedef int8_t crypto_int8; | ||
19 | typedef uint8_t crypto_uint8; | ||
20 | typedef int16_t crypto_int16; | ||
21 | typedef uint16_t crypto_uint16; | ||
18 | typedef int32_t crypto_int32; | 22 | typedef int32_t crypto_int32; |
19 | typedef uint32_t crypto_uint32; | 23 | typedef uint32_t crypto_uint32; |
20 | 24 | ||
21 | #define randombytes(buf, buf_len) arc4random_buf((buf), (buf_len)) | 25 | #define randombytes(buf, buf_len) arc4random_buf((buf), (buf_len)) |
26 | #define small_random32() arc4random() | ||
22 | 27 | ||
23 | #define crypto_hash_sha512_BYTES 64U | 28 | #define crypto_hash_sha512_BYTES 64U |
24 | 29 | ||
@@ -37,4 +42,15 @@ int crypto_sign_ed25519_open(unsigned char *, unsigned long long *, | |||
37 | const unsigned char *, unsigned long long, const unsigned char *); | 42 | const unsigned char *, unsigned long long, const unsigned char *); |
38 | int crypto_sign_ed25519_keypair(unsigned char *, unsigned char *); | 43 | int crypto_sign_ed25519_keypair(unsigned char *, unsigned char *); |
39 | 44 | ||
45 | #define crypto_kem_sntrup4591761_PUBLICKEYBYTES 1218 | ||
46 | #define crypto_kem_sntrup4591761_SECRETKEYBYTES 1600 | ||
47 | #define crypto_kem_sntrup4591761_CIPHERTEXTBYTES 1047 | ||
48 | #define crypto_kem_sntrup4591761_BYTES 32 | ||
49 | |||
50 | int crypto_kem_sntrup4591761_enc(unsigned char *cstr, unsigned char *k, | ||
51 | const unsigned char *pk); | ||
52 | int crypto_kem_sntrup4591761_dec(unsigned char *k, | ||
53 | const unsigned char *cstr, const unsigned char *sk); | ||
54 | int crypto_kem_sntrup4591761_keypair(unsigned char *pk, unsigned char *sk); | ||
55 | |||
40 | #endif /* crypto_api_h */ | 56 | #endif /* crypto_api_h */ |