summaryrefslogtreecommitdiff
path: root/libressl/include64/openssl/hkdf.h
diff options
context:
space:
mode:
authorEduardo Chappa <chappa@washington.edu>2020-01-19 01:23:34 -0700
committerEduardo Chappa <chappa@washington.edu>2020-01-19 01:23:34 -0700
commit082202c409cab376f0f0623635dc19e8468baafc (patch)
treeec14202aed02a871280421eb554c46465a2e45a8 /libressl/include64/openssl/hkdf.h
parent16b49fa63ad28aab44cde5096a706e6cc7520b1f (diff)
downloadalpine-082202c409cab376f0f0623635dc19e8468baafc.tar.xz
* Creating w32 port for compilation of Alpine. This is intended for old
machines that cannot be updated. Long story short: Always use the command "build wnt" to build Alpine. If that does not work, try "build w32", which is for machines that are too old and do not have any way to use modern encryption protocols such as TLSv1.2. The version of Alpine built in modern machines will be called alpine.exe, and the binary built with the port w32 will be called alpine32 in the repository. All other binaries can be downloaded from the main web site, and they will not have the suffix "32" there.
Diffstat (limited to 'libressl/include64/openssl/hkdf.h')
-rw-r--r--libressl/include64/openssl/hkdf.h65
1 files changed, 65 insertions, 0 deletions
diff --git a/libressl/include64/openssl/hkdf.h b/libressl/include64/openssl/hkdf.h
new file mode 100644
index 00000000..34450f9d
--- /dev/null
+++ b/libressl/include64/openssl/hkdf.h
@@ -0,0 +1,65 @@
+/* $OpenBSD: hkdf.h,v 1.2 2018/04/03 13:33:53 tb Exp $ */
+/* Copyright (c) 2014, Google Inc.
+ *
+ * Permission to use, copy, modify, and/or distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
+ * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
+ * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
+ * SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION
+ * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
+ * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */
+
+#ifndef OPENSSL_HEADER_HKDF_H
+#define OPENSSL_HEADER_HKDF_H
+
+#include <openssl/evp.h>
+
+#if defined(__cplusplus)
+extern "C" {
+#endif
+
+/*
+ * HKDF computes HKDF (as specified by RFC 5869) of initial keying
+ * material |secret| with |salt| and |info| using |digest|, and
+ * outputs |out_len| bytes to |out_key|. It returns one on success and
+ * zero on error.
+ *
+ * HKDF is an Extract-and-Expand algorithm. It does not do any key
+ * stretching, and as such, is not suited to be used alone to generate
+ * a key from a password.
+ */
+
+int HKDF(uint8_t *out_key, size_t out_len, const struct env_md_st *digest,
+ const uint8_t *secret, size_t secret_len, const uint8_t *salt,
+ size_t salt_len, const uint8_t *info, size_t info_len);
+
+/*
+ * HKDF_extract computes a HKDF PRK (as specified by RFC 5869) from
+ * initial keying material |secret| and salt |salt| using |digest|,
+ * and outputs |out_len| bytes to |out_key|. The maximum output size
+ * is |EVP_MAX_MD_SIZE|. It returns one on success and zero on error.
+ */
+int HKDF_extract(uint8_t *out_key, size_t *out_len,
+ const struct env_md_st *digest, const uint8_t *secret,
+ size_t secret_len, const uint8_t *salt, size_t salt_len);
+
+/*
+ * HKDF_expand computes a HKDF OKM (as specified by RFC 5869) of
+ * length |out_len| from the PRK |prk| and info |info| using |digest|,
+ * and outputs the result to |out_key|. It returns one on success and
+ * zero on error.
+ */
+int HKDF_expand(uint8_t *out_key, size_t out_len,
+ const EVP_MD *digest, const uint8_t *prk, size_t prk_len,
+ const uint8_t *info, size_t info_len);
+
+
+#if defined(__cplusplus)
+} /* extern C */
+#endif
+
+#endif /* OPENSSL_HEADER_HKDF_H */