You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
157 lines
3.8 KiB
157 lines
3.8 KiB
4 years ago
|
/** @file
|
||
|
Diffie-Hellman Wrapper Implementation which does not provide
|
||
|
real capabilities.
|
||
|
|
||
|
Copyright (c) 2012 - 2018, 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"
|
||
|
|
||
|
/**
|
||
|
Allocates and Initializes one Diffie-Hellman Context for subsequent use.
|
||
|
|
||
|
@return Pointer to the Diffie-Hellman Context that has been initialized.
|
||
|
If the interface is not supported, DhNew() returns NULL.
|
||
|
|
||
|
**/
|
||
|
VOID *
|
||
|
EFIAPI
|
||
|
DhNew (
|
||
|
VOID
|
||
|
)
|
||
|
{
|
||
|
ASSERT (FALSE);
|
||
|
return NULL;
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
Release the specified DH context.
|
||
|
|
||
|
If the interface is not supported, then ASSERT().
|
||
|
|
||
|
@param[in] DhContext Pointer to the DH context to be released.
|
||
|
|
||
|
**/
|
||
|
VOID
|
||
|
EFIAPI
|
||
|
DhFree (
|
||
|
IN VOID *DhContext
|
||
|
)
|
||
|
{
|
||
|
ASSERT (FALSE);
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
Generates DH parameter.
|
||
|
|
||
|
Return FALSE to indicate this interface is not supported.
|
||
|
|
||
|
@param[in, out] DhContext Pointer to the DH context.
|
||
|
@param[in] Generator Value of generator.
|
||
|
@param[in] PrimeLength Length in bits of prime to be generated.
|
||
|
@param[out] Prime Pointer to the buffer to receive the generated prime number.
|
||
|
|
||
|
@retval FALSE This interface is not supported.
|
||
|
|
||
|
**/
|
||
|
BOOLEAN
|
||
|
EFIAPI
|
||
|
DhGenerateParameter (
|
||
|
IN OUT VOID *DhContext,
|
||
|
IN UINTN Generator,
|
||
|
IN UINTN PrimeLength,
|
||
|
OUT UINT8 *Prime
|
||
|
)
|
||
|
{
|
||
|
ASSERT (FALSE);
|
||
|
return FALSE;
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
Sets generator and prime parameters for DH.
|
||
|
|
||
|
Return FALSE to indicate this interface is not supported.
|
||
|
|
||
|
@param[in, out] DhContext Pointer to the DH context.
|
||
|
@param[in] Generator Value of generator.
|
||
|
@param[in] PrimeLength Length in bits of prime to be generated.
|
||
|
@param[in] Prime Pointer to the prime number.
|
||
|
|
||
|
@retval FALSE This interface is not supported.
|
||
|
|
||
|
**/
|
||
|
BOOLEAN
|
||
|
EFIAPI
|
||
|
DhSetParameter (
|
||
|
IN OUT VOID *DhContext,
|
||
|
IN UINTN Generator,
|
||
|
IN UINTN PrimeLength,
|
||
|
IN CONST UINT8 *Prime
|
||
|
)
|
||
|
{
|
||
|
ASSERT (FALSE);
|
||
|
return FALSE;
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
Generates DH public key.
|
||
|
|
||
|
Return FALSE to indicate this interface is not supported.
|
||
|
|
||
|
@param[in, out] DhContext Pointer to the DH context.
|
||
|
@param[out] PublicKey Pointer to the buffer to receive generated public key.
|
||
|
@param[in, out] PublicKeySize On input, the size of PublicKey buffer in bytes.
|
||
|
On output, the size of data returned in PublicKey buffer in bytes.
|
||
|
|
||
|
@retval FALSE This interface is not supported.
|
||
|
|
||
|
**/
|
||
|
BOOLEAN
|
||
|
EFIAPI
|
||
|
DhGenerateKey (
|
||
|
IN OUT VOID *DhContext,
|
||
|
OUT UINT8 *PublicKey,
|
||
|
IN OUT UINTN *PublicKeySize
|
||
|
)
|
||
|
{
|
||
|
ASSERT (FALSE);
|
||
|
return FALSE;
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
Computes exchanged common key.
|
||
|
|
||
|
Return FALSE to indicate this interface is not supported.
|
||
|
|
||
|
@param[in, out] DhContext Pointer to the DH context.
|
||
|
@param[in] PeerPublicKey Pointer to the peer's public key.
|
||
|
@param[in] PeerPublicKeySize Size of peer's public key in bytes.
|
||
|
@param[out] Key Pointer to the buffer to receive generated key.
|
||
|
@param[in, out] KeySize On input, the size of Key buffer in bytes.
|
||
|
On output, the size of data returned in Key buffer in bytes.
|
||
|
|
||
|
@retval FALSE This interface is not supported.
|
||
|
|
||
|
**/
|
||
|
BOOLEAN
|
||
|
EFIAPI
|
||
|
DhComputeKey (
|
||
|
IN OUT VOID *DhContext,
|
||
|
IN CONST UINT8 *PeerPublicKey,
|
||
|
IN UINTN PeerPublicKeySize,
|
||
|
OUT UINT8 *Key,
|
||
|
IN OUT UINTN *KeySize
|
||
|
)
|
||
|
{
|
||
|
ASSERT (FALSE);
|
||
|
return FALSE;
|
||
|
}
|