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