]> git.proxmox.com Git - mirror_edk2.git/blobdiff - CryptoPkg/Private/Protocol/Crypto.h
CryptoPkg/BaseCryptLib: Retire ARC4 algorithm
[mirror_edk2.git] / CryptoPkg / Private / Protocol / Crypto.h
index ae0f29695c61ec29d694af9f7caf8fc94fb14752..f36c5c1aff4dbe8a1ba84c312e03bd23bcdd82bb 100644 (file)
@@ -2785,134 +2785,45 @@ BOOLEAN
   );\r
 \r
 /**\r
-  Retrieves the size, in bytes, of the context buffer required for ARC4 operations.\r
-\r
-  If this interface is not supported, then return zero.\r
-\r
-  @return  The size, in bytes, of the context buffer required for ARC4 operations.\r
-  @retval  0   This interface is not supported.\r
+  ARC4 is deprecated and unsupported any longer.\r
+  Keep the function field for binary compability.\r
 \r
 **/\r
 typedef\r
 UINTN\r
-(EFIAPI *EDKII_CRYPTO_ARC4_GET_CONTEXT_SIZE) (\r
+(EFIAPI *DEPRECATED_EDKII_CRYPTO_ARC4_GET_CONTEXT_SIZE) (\r
   VOID\r
   );\r
 \r
-/**\r
-  Initializes user-supplied memory as ARC4 context for subsequent use.\r
-\r
-  This function initializes user-supplied memory pointed by Arc4Context as ARC4 context.\r
-  In addition, it sets up all ARC4 key materials for subsequent encryption and decryption\r
-  operations.\r
-\r
-  If Arc4Context is NULL, then return FALSE.\r
-  If Key is NULL, then return FALSE.\r
-  If KeySize does not in the range of [5, 256] bytes, then return FALSE.\r
-  If this interface is not supported, then return FALSE.\r
-\r
-  @param[out]  Arc4Context  Pointer to ARC4 context being initialized.\r
-  @param[in]   Key          Pointer to the user-supplied ARC4 key.\r
-  @param[in]   KeySize      Size of ARC4 key in bytes.\r
-\r
-  @retval TRUE   ARC4 context initialization succeeded.\r
-  @retval FALSE  ARC4 context initialization failed.\r
-  @retval FALSE  This interface is not supported.\r
-\r
-**/\r
 typedef\r
 BOOLEAN\r
-(EFIAPI *EDKII_CRYPTO_ARC4_INIT) (\r
+(EFIAPI *DEPRECATED_EDKII_CRYPTO_ARC4_INIT) (\r
   OUT  VOID         *Arc4Context,\r
   IN   CONST UINT8  *Key,\r
   IN   UINTN        KeySize\r
   );\r
 \r
-/**\r
-  Performs ARC4 encryption on a data buffer of the specified size.\r
-\r
-  This function performs ARC4 encryption on data buffer pointed by Input, of specified\r
-  size of InputSize.\r
-  Arc4Context should be already correctly initialized by Arc4Init(). Behavior with\r
-  invalid ARC4 context is undefined.\r
-\r
-  If Arc4Context is NULL, then return FALSE.\r
-  If Input is NULL, then return FALSE.\r
-  If Output is NULL, then return FALSE.\r
-  If this interface is not supported, then return FALSE.\r
-\r
-  @param[in, out]  Arc4Context  Pointer to the ARC4 context.\r
-  @param[in]       Input        Pointer to the buffer containing the data to be encrypted.\r
-  @param[in]       InputSize    Size of the Input buffer in bytes.\r
-  @param[out]      Output       Pointer to a buffer that receives the ARC4 encryption output.\r
-\r
-  @retval TRUE   ARC4 encryption succeeded.\r
-  @retval FALSE  ARC4 encryption failed.\r
-  @retval FALSE  This interface is not supported.\r
-\r
-**/\r
 typedef\r
 BOOLEAN\r
-(EFIAPI *EDKII_CRYPTO_ARC4_ENCRYPT) (\r
+(EFIAPI *DEPRECATED_EDKII_CRYPTO_ARC4_ENCRYPT) (\r
   IN OUT  VOID         *Arc4Context,\r
   IN      CONST UINT8  *Input,\r
   IN      UINTN        InputSize,\r
   OUT     UINT8        *Output\r
   );\r
 \r
-/**\r
-  Performs ARC4 decryption on a data buffer of the specified size.\r
-\r
-  This function performs ARC4 decryption on data buffer pointed by Input, of specified\r
-  size of InputSize.\r
-  Arc4Context should be already correctly initialized by Arc4Init(). Behavior with\r
-  invalid ARC4 context is undefined.\r
-\r
-  If Arc4Context is NULL, then return FALSE.\r
-  If Input is NULL, then return FALSE.\r
-  If Output is NULL, then return FALSE.\r
-  If this interface is not supported, then return FALSE.\r
-\r
-  @param[in, out]  Arc4Context  Pointer to the ARC4 context.\r
-  @param[in]       Input        Pointer to the buffer containing the data to be decrypted.\r
-  @param[in]       InputSize    Size of the Input buffer in bytes.\r
-  @param[out]      Output       Pointer to a buffer that receives the ARC4 decryption output.\r
-\r
-  @retval TRUE   ARC4 decryption succeeded.\r
-  @retval FALSE  ARC4 decryption failed.\r
-  @retval FALSE  This interface is not supported.\r
-\r
-**/\r
 typedef\r
 BOOLEAN\r
-(EFIAPI *EDKII_CRYPTO_ARC4_DECRYPT) (\r
+(EFIAPI *DEPRECATED_EDKII_CRYPTO_ARC4_DECRYPT) (\r
   IN OUT  VOID   *Arc4Context,\r
   IN      UINT8  *Input,\r
   IN      UINTN  InputSize,\r
   OUT     UINT8  *Output\r
   );\r
 \r
-/**\r
-  Resets the ARC4 context to the initial state.\r
-\r
-  The function resets the ARC4 context to the state it had immediately after the\r
-  ARC4Init() function call.\r
-  Contrary to ARC4Init(), Arc4Reset() requires no secret key as input, but ARC4 context\r
-  should be already correctly initialized by ARC4Init().\r
-\r
-  If Arc4Context is NULL, then return FALSE.\r
-  If this interface is not supported, then return FALSE.\r
-\r
-  @param[in, out]  Arc4Context  Pointer to the ARC4 context.\r
-\r
-  @retval TRUE   ARC4 reset succeeded.\r
-  @retval FALSE  ARC4 reset failed.\r
-  @retval FALSE  This interface is not supported.\r
-\r
-**/\r
 typedef\r
 BOOLEAN\r
-(EFIAPI *EDKII_CRYPTO_ARC4_RESET) (\r
+(EFIAPI *DEPRECATED_EDKII_CRYPTO_ARC4_RESET) (\r
   IN OUT  VOID  *Arc4Context\r
   );\r
 \r
@@ -4014,12 +3925,12 @@ struct _EDKII_CRYPTO_PROTOCOL {
   EDKII_CRYPTO_AES_ECB_DECRYPT                    AesEcbDecrypt;\r
   EDKII_CRYPTO_AES_CBC_ENCRYPT                    AesCbcEncrypt;\r
   EDKII_CRYPTO_AES_CBC_DECRYPT                    AesCbcDecrypt;\r
-  /// Arc4\r
-  EDKII_CRYPTO_ARC4_GET_CONTEXT_SIZE              Arc4GetContextSize;\r
-  EDKII_CRYPTO_ARC4_INIT                          Arc4Init;\r
-  EDKII_CRYPTO_ARC4_ENCRYPT                       Arc4Encrypt;\r
-  EDKII_CRYPTO_ARC4_DECRYPT                       Arc4Decrypt;\r
-  EDKII_CRYPTO_ARC4_RESET                         Arc4Reset;\r
+  /// Arc4 - deprecated and unsupported\r
+  DEPRECATED_EDKII_CRYPTO_ARC4_GET_CONTEXT_SIZE   DeprecatedArc4GetContextSize;\r
+  DEPRECATED_EDKII_CRYPTO_ARC4_INIT               DeprecatedArc4Init;\r
+  DEPRECATED_EDKII_CRYPTO_ARC4_ENCRYPT            DeprecatedArc4Encrypt;\r
+  DEPRECATED_EDKII_CRYPTO_ARC4_DECRYPT            DeprecatedArc4Decrypt;\r
+  DEPRECATED_EDKII_CRYPTO_ARC4_RESET              DeprecatedArc4Reset;\r
   /// SM3\r
   EDKII_CRYPTO_SM3_GET_CONTEXT_SIZE               Sm3GetContextSize;\r
   EDKII_CRYPTO_SM3_INIT                           Sm3Init;\r