mirror of https://github.com/acidanthera/audk.git
57 lines
2.1 KiB
C
57 lines
2.1 KiB
C
|
/** @file
|
||
|
PBKDF2 Key Derivation Function Wrapper Implementation which does not provide real
|
||
|
capabilities.
|
||
|
|
||
|
Copyright (c) 2016, Intel Corporation. All rights reserved.<BR>
|
||
|
This program and the accompanying materials
|
||
|
are licensed and made available under the terms and conditions of the BSD License
|
||
|
which accompanies this distribution. The full text of the license may be found at
|
||
|
http://opensource.org/licenses/bsd-license.php
|
||
|
|
||
|
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||
|
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||
|
|
||
|
**/
|
||
|
|
||
|
#include "InternalCryptLib.h"
|
||
|
#include <openssl/evp.h>
|
||
|
#include <openssl/hmac.h>
|
||
|
|
||
|
/**
|
||
|
Derives a key from a password using a salt and iteration count, based on PKCS#5 v2.0
|
||
|
password based encryption key derivation function PBKDF2, as specified in RFC 2898.
|
||
|
|
||
|
Return FALSE to indicate this interface is not supported.
|
||
|
|
||
|
@param[in] PasswordLength Length of input password in bytes.
|
||
|
@param[in] Password Pointer to the array for the password.
|
||
|
@param[in] SaltLength Size of the Salt in bytes.
|
||
|
@param[in] Salt Pointer to the Salt.
|
||
|
@param[in] IterationCount Number of iterations to perform. Its value should be
|
||
|
greater than or equal to 1.
|
||
|
@param[in] DigestSize Size of the message digest to be used (eg. SHA256_DIGEST_SIZE).
|
||
|
NOTE: DigestSize will be used to determine the hash algorithm.
|
||
|
Only SHA1_DIGEST_SIZE or SHA256_DIGEST_SIZE is supported.
|
||
|
@param[in] KeyLength Size of the derived key buffer in bytes.
|
||
|
@param[out] OutKey Pointer to the output derived key buffer.
|
||
|
|
||
|
@retval FALSE This interface is not supported.
|
||
|
|
||
|
**/
|
||
|
BOOLEAN
|
||
|
EFIAPI
|
||
|
Pkcs5HashPassword (
|
||
|
IN UINTN PasswordLength,
|
||
|
IN CONST CHAR8 *Password,
|
||
|
IN UINTN SaltLength,
|
||
|
IN CONST UINT8 *Salt,
|
||
|
IN UINTN IterationCount,
|
||
|
IN UINTN DigestSize,
|
||
|
IN UINTN KeyLength,
|
||
|
OUT UINT8 *OutKey
|
||
|
)
|
||
|
{
|
||
|
ASSERT (FALSE);
|
||
|
return FALSE;
|
||
|
}
|