diff options
Diffstat (limited to 'src/lib/libssl/tls13_internal.h')
| -rw-r--r-- | src/lib/libssl/tls13_internal.h | 24 |
1 files changed, 14 insertions, 10 deletions
diff --git a/src/lib/libssl/tls13_internal.h b/src/lib/libssl/tls13_internal.h index cad769a1bf..83f9988140 100644 --- a/src/lib/libssl/tls13_internal.h +++ b/src/lib/libssl/tls13_internal.h | |||
| @@ -1,7 +1,7 @@ | |||
| 1 | /* $OpenBSD: tls13_internal.h,v 1.4 2018/11/09 03:07:26 jsing Exp $ */ | 1 | /* $OpenBSD: tls13_internal.h,v 1.5 2018/11/09 23:56:20 jsing Exp $ */ |
| 2 | /* | 2 | /* |
| 3 | * Copyright (c) 2018, Bob Beck <beck@openbsd.org> | 3 | * Copyright (c) 2018 Bob Beck <beck@openbsd.org> |
| 4 | * Copyright (c) 2018, Theo Buehler <tb@openbsd.org> | 4 | * Copyright (c) 2018 Theo Buehler <tb@openbsd.org> |
| 5 | * | 5 | * |
| 6 | * Permission to use, copy, modify, and/or distribute this software for any | 6 | * Permission to use, copy, modify, and/or distribute this software for any |
| 7 | * purpose with or without fee is hereby granted, provided that the above | 7 | * purpose with or without fee is hereby granted, provided that the above |
| @@ -30,6 +30,7 @@ struct tls13_secret { | |||
| 30 | 30 | ||
| 31 | /* RFC 8446 Section 7.1 Page 92 */ | 31 | /* RFC 8446 Section 7.1 Page 92 */ |
| 32 | struct tls13_secrets { | 32 | struct tls13_secrets { |
| 33 | const EVP_MD *digest; | ||
| 33 | int resumption; | 34 | int resumption; |
| 34 | int init_done; | 35 | int init_done; |
| 35 | int early_done; | 36 | int early_done; |
| @@ -37,6 +38,7 @@ struct tls13_secrets { | |||
| 37 | int schedule_done; | 38 | int schedule_done; |
| 38 | int insecure; /* Set by tests */ | 39 | int insecure; /* Set by tests */ |
| 39 | struct tls13_secret zeros; | 40 | struct tls13_secret zeros; |
| 41 | struct tls13_secret empty_hash; | ||
| 40 | struct tls13_secret extracted_early; | 42 | struct tls13_secret extracted_early; |
| 41 | struct tls13_secret binder_key; | 43 | struct tls13_secret binder_key; |
| 42 | struct tls13_secret client_early_traffic; | 44 | struct tls13_secret client_early_traffic; |
| @@ -53,18 +55,20 @@ struct tls13_secrets { | |||
| 53 | struct tls13_secret resumption_master; | 55 | struct tls13_secret resumption_master; |
| 54 | }; | 56 | }; |
| 55 | 57 | ||
| 56 | struct tls13_secrets *tls13_secrets_new(size_t hash_length); | 58 | struct tls13_secrets *tls13_secrets_create(const EVP_MD *digest, |
| 57 | void tls13_secrets_init(struct tls13_secrets *secrets, int resumption); | 59 | int resumption); |
| 58 | void tls13_secrets_destroy(struct tls13_secrets *secrets); | 60 | void tls13_secrets_destroy(struct tls13_secrets *secrets); |
| 59 | 61 | ||
| 60 | int tls13_derive_early_secrets(struct tls13_secrets *secrets, | 62 | int tls13_hkdf_expand_label(struct tls13_secret *out, const EVP_MD *digest, |
| 61 | const EVP_MD *digest,uint8_t *psk, size_t psk_len, | 63 | const struct tls13_secret *secret, const char *label, |
| 62 | const struct tls13_secret *context); | 64 | const struct tls13_secret *context); |
| 65 | |||
| 66 | int tls13_derive_early_secrets(struct tls13_secrets *secrets, uint8_t *psk, | ||
| 67 | size_t psk_len, const struct tls13_secret *context); | ||
| 63 | int tls13_derive_handshake_secrets(struct tls13_secrets *secrets, | 68 | int tls13_derive_handshake_secrets(struct tls13_secrets *secrets, |
| 64 | const EVP_MD *digest, const uint8_t *ecdhe, size_t ecdhe_len, | 69 | const uint8_t *ecdhe, size_t ecdhe_len, const struct tls13_secret *context); |
| 65 | const struct tls13_secret *context); | ||
| 66 | int tls13_derive_application_secrets(struct tls13_secrets *secrets, | 70 | int tls13_derive_application_secrets(struct tls13_secrets *secrets, |
| 67 | const EVP_MD *digest, const struct tls13_secret *context); | 71 | const struct tls13_secret *context); |
| 68 | 72 | ||
| 69 | struct tls13_ctx; | 73 | struct tls13_ctx; |
| 70 | 74 | ||
