1 // Copyright 2018 The BoringSSL Authors 2 // 3 // Licensed under the Apache License, Version 2.0 (the "License"); 4 // you may not use this file except in compliance with the License. 5 // You may obtain a copy of the License at 6 // 7 // https://www.apache.org/licenses/LICENSE-2.0 8 // 9 // Unless required by applicable law or agreed to in writing, software 10 // distributed under the License is distributed on an "AS IS" BASIS, 11 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 // See the License for the specific language governing permissions and 13 // limitations under the License. 14 15 #ifndef OPENSSL_HEADER_CRYPTO_FIPSMODULE_TLS_INTERNAL_H 16 #define OPENSSL_HEADER_CRYPTO_FIPSMODULE_TLS_INTERNAL_H 17 18 #include <openssl/base.h> 19 20 #if defined(__cplusplus) 21 extern "C" { 22 #endif 23 24 25 // tls1_prf calculates |out_len| bytes of the TLS PDF, using |digest|, and 26 // writes them to |out|. It returns one on success and zero on error. 27 OPENSSL_EXPORT int CRYPTO_tls1_prf(const EVP_MD *digest, 28 uint8_t *out, size_t out_len, 29 const uint8_t *secret, size_t secret_len, 30 const char *label, size_t label_len, 31 const uint8_t *seed1, size_t seed1_len, 32 const uint8_t *seed2, size_t seed2_len); 33 34 // CRYPTO_tls13_hkdf_expand_label computes the TLS 1.3 KDF function of the same 35 // name. See https://www.rfc-editor.org/rfc/rfc8446#section-7.1. 36 OPENSSL_EXPORT int CRYPTO_tls13_hkdf_expand_label( 37 uint8_t *out, size_t out_len, const EVP_MD *digest, // 38 const uint8_t *secret, size_t secret_len, // 39 const uint8_t *label, size_t label_len, // 40 const uint8_t *hash, size_t hash_len); 41 42 43 #if defined(__cplusplus) 44 } 45 #endif 46 47 #endif // OPENSSL_HEADER_CRYPTO_FIPSMODULE_TLS_INTERNAL_H 48