acrn-hypervisor/hypervisor/lib/crypto/crypto_api.c
Geoffroy Van Cutsem 8b16be9185 Remove "All rights reserved" string headers
Many of the license and Intel copyright headers include the "All rights
reserved" string. It is not relevant in the context of the BSD-3-Clause
license that the code is released under. This patch removes those strings
throughout the code (hypervisor, devicemodel and misc).

Tracked-On: #7254
Signed-off-by: Geoffroy Van Cutsem <geoffroy.vancutsem@intel.com>
2022-04-06 13:21:02 +08:00

51 lines
1.1 KiB
C

/*
* Copyright (C) 2018 Intel Corporation.
*
* SPDX-License-Identifier: BSD-3-Clause
*/
#include <rtl.h>
#include "mbedtls/hkdf.h"
#include "mbedtls/md.h"
int32_t hkdf_sha256(uint8_t *out_key, size_t out_len,
const uint8_t *secret, size_t secret_len,
const uint8_t *salt, size_t salt_len,
const uint8_t *info, size_t info_len)
{
int32_t ret = 0;
const mbedtls_md_info_t *md;
/* salt and info can be NULL, others can't */
if ((out_key != NULL) && (secret != NULL)) {
md = mbedtls_md_info_from_type(MBEDTLS_MD_SHA256);
if (md != NULL) {
if (mbedtls_hkdf(md, salt, salt_len, secret, secret_len,
info, info_len, out_key, out_len) == 0) {
ret = 1;
}
}
}
return ret;
}
int32_t hmac_sha256(uint8_t *out_key,
const uint8_t *secret, size_t secret_len,
const uint8_t *salt, size_t salt_len)
{
int32_t ret = 0;
const mbedtls_md_info_t *md;
if ((out_key != NULL) && (secret != NULL) && (salt != NULL)) {
md = mbedtls_md_info_from_type(MBEDTLS_MD_SHA256);
if (md != NULL) {
if (mbedtls_md_hmac(md, secret, secret_len, salt, salt_len, out_key) == 0) {
ret = 1;
}
}
}
return ret;
}