Home | History | Annotate | Download | only in Pk
      1 /** @file
      2   Diffie-Hellman Wrapper Implementation which does not provide
      3   real capabilities.
      4 
      5 Copyright (c) 2012, Intel Corporation. All rights reserved.<BR>
      6 This program and the accompanying materials
      7 are licensed and made available under the terms and conditions of the BSD License
      8 which accompanies this distribution.  The full text of the license may be found at
      9 http://opensource.org/licenses/bsd-license.php
     10 
     11 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
     12 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
     13 
     14 **/
     15 
     16 #include "InternalCryptLib.h"
     17 
     18 /**
     19   Allocates and Initializes one Diffie-Hellman Context for subsequent use.
     20 
     21   @return  Pointer to the Diffie-Hellman Context that has been initialized.
     22            If the interface is not supported, DhNew() returns NULL.
     23 
     24 **/
     25 VOID *
     26 EFIAPI
     27 DhNew (
     28   VOID
     29   )
     30 {
     31   ASSERT (FALSE);
     32   return NULL;
     33 }
     34 
     35 /**
     36   Release the specified DH context.
     37 
     38   If the interface is not supported, then ASSERT().
     39 
     40   @param[in]  DhContext  Pointer to the DH context to be released.
     41 
     42 **/
     43 VOID
     44 EFIAPI
     45 DhFree (
     46   IN  VOID  *DhContext
     47   )
     48 {
     49   ASSERT (FALSE);
     50 }
     51 
     52 /**
     53   Generates DH parameter.
     54 
     55   Return FALSE to indicate this interface is not supported.
     56 
     57   @param[in, out]  DhContext    Pointer to the DH context.
     58   @param[in]       Generator    Value of generator.
     59   @param[in]       PrimeLength  Length in bits of prime to be generated.
     60   @param[out]      Prime        Pointer to the buffer to receive the generated prime number.
     61 
     62   @retval FALSE  This interface is not supported.
     63 
     64 **/
     65 BOOLEAN
     66 EFIAPI
     67 DhGenerateParameter (
     68   IN OUT  VOID   *DhContext,
     69   IN      UINTN  Generator,
     70   IN      UINTN  PrimeLength,
     71   OUT     UINT8  *Prime
     72   )
     73 {
     74   ASSERT (FALSE);
     75   return FALSE;
     76 }
     77 
     78 /**
     79   Sets generator and prime parameters for DH.
     80 
     81   Return FALSE to indicate this interface is not supported.
     82 
     83   @param[in, out]  DhContext    Pointer to the DH context.
     84   @param[in]       Generator    Value of generator.
     85   @param[in]       PrimeLength  Length in bits of prime to be generated.
     86   @param[in]       Prime        Pointer to the prime number.
     87 
     88   @retval FALSE  This interface is not supported.
     89 
     90 **/
     91 BOOLEAN
     92 EFIAPI
     93 DhSetParameter (
     94   IN OUT  VOID         *DhContext,
     95   IN      UINTN        Generator,
     96   IN      UINTN        PrimeLength,
     97   IN      CONST UINT8  *Prime
     98   )
     99 {
    100   ASSERT (FALSE);
    101   return FALSE;
    102 }
    103 
    104 /**
    105   Generates DH public key.
    106 
    107   Return FALSE to indicate this interface is not supported.
    108 
    109   @param[in, out]  DhContext      Pointer to the DH context.
    110   @param[out]      PublicKey      Pointer to the buffer to receive generated public key.
    111   @param[in, out]  PublicKeySize  On input, the size of PublicKey buffer in bytes.
    112                                   On output, the size of data returned in PublicKey buffer in bytes.
    113 
    114   @retval FALSE  This interface is not supported.
    115 
    116 **/
    117 BOOLEAN
    118 EFIAPI
    119 DhGenerateKey (
    120   IN OUT  VOID   *DhContext,
    121   OUT     UINT8  *PublicKey,
    122   IN OUT  UINTN  *PublicKeySize
    123   )
    124 {
    125   ASSERT (FALSE);
    126   return FALSE;
    127 }
    128 
    129 /**
    130   Computes exchanged common key.
    131 
    132   Return FALSE to indicate this interface is not supported.
    133 
    134   @param[in, out]  DhContext          Pointer to the DH context.
    135   @param[in]       PeerPublicKey      Pointer to the peer's public key.
    136   @param[in]       PeerPublicKeySize  Size of peer's public key in bytes.
    137   @param[out]      Key                Pointer to the buffer to receive generated key.
    138   @param[in, out]  KeySize            On input, the size of Key buffer in bytes.
    139                                       On output, the size of data returned in Key buffer in bytes.
    140 
    141   @retval FALSE  This interface is not supported.
    142 
    143 **/
    144 BOOLEAN
    145 EFIAPI
    146 DhComputeKey (
    147   IN OUT  VOID         *DhContext,
    148   IN      CONST UINT8  *PeerPublicKey,
    149   IN      UINTN        PeerPublicKeySize,
    150   OUT     UINT8        *Key,
    151   IN OUT  UINTN        *KeySize
    152   )
    153 {
    154   ASSERT (FALSE);
    155   return FALSE;
    156 }
    157