text: /** @file
    Diffie-Hellman Wrapper Implementation which does not provide
    real capabilities.
  
  Copyright (c) 2012 - 2018, Intel Corporation. All rights reserved.<BR>
  SPDX-License-Identifier: BSD-2-Clause-Patent
  
  **/
  
  #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;
  }
  