10#ifndef __EDKII_CRYPTO_PROTOCOL_H__
11#define __EDKII_CRYPTO_PROTOCOL_H__
24#define EDKII_CRYPTO_VERSION 17
60(EFIAPI *DEPRECATED_EDKII_CRYPTO_HMAC_MD5_FREE)(
66(EFIAPI *DEPRECATED_EDKII_CRYPTO_HMAC_MD5_SET_KEY)(
67 OUT VOID *HmacMd5Context,
74(EFIAPI *DEPRECATED_EDKII_CRYPTO_HMAC_MD5_DUPLICATE)(
76 OUT VOID *NewHmacMd5Context
81(EFIAPI *DEPRECATED_EDKII_CRYPTO_HMAC_MD5_UPDATE)(
82 IN OUT VOID *HmacMd5Context,
89(EFIAPI *DEPRECATED_EDKII_CRYPTO_HMAC_MD5_FINAL)(
90 IN OUT VOID *HmacMd5Context,
107(EFIAPI *DEPRECATED_EDKII_CRYPTO_HMAC_SHA1_FREE)(
113(EFIAPI *DEPRECATED_EDKII_CRYPTO_HMAC_SHA1_SET_KEY)(
114 OUT VOID *HmacSha1Context,
121(EFIAPI *DEPRECATED_EDKII_CRYPTO_HMAC_SHA1_DUPLICATE)(
122 IN CONST VOID *HmacSha1Context,
123 OUT VOID *NewHmacSha1Context
128(EFIAPI *DEPRECATED_EDKII_CRYPTO_HMAC_SHA1_UPDATE)(
129 IN OUT VOID *HmacSha1Context,
136(EFIAPI *DEPRECATED_EDKII_CRYPTO_HMAC_SHA1_FINAL)(
137 IN OUT VOID *HmacSha1Context,
163 IN VOID *HmacSha256Ctx
185 OUT VOID *HmacSha256Context,
208 IN CONST VOID *HmacSha256Context,
209 OUT VOID *NewHmacSha256Context
235 IN OUT VOID *HmacSha256Context,
265 IN OUT VOID *HmacSha256Context,
321 IN VOID *HmacSha384Ctx
343 OUT VOID *HmacSha384Context,
366 IN CONST VOID *HmacSha384Context,
367 OUT VOID *NewHmacSha384Context
393 IN OUT VOID *HmacSha384Context,
423 IN OUT VOID *HmacSha384Context,
474(EFIAPI *DEPRECATED_EDKII_CRYPTO_MD4_INIT)(
480(EFIAPI *DEPRECATED_EDKII_CRYPTO_MD4_DUPLICATE)(
482 OUT VOID *NewMd4Context
487(EFIAPI *DEPRECATED_EDKII_CRYPTO_MD4_UPDATE)(
488 IN OUT VOID *Md4Context,
495(EFIAPI *DEPRECATED_EDKII_CRYPTO_MD4_FINAL)(
496 IN OUT VOID *Md4Context,
502(EFIAPI *DEPRECATED_EDKII_CRYPTO_MD4_HASH_ALL)(
564 OUT VOID *NewMd5Context
590 IN OUT VOID *Md5Context,
620 IN OUT VOID *Md5Context,
687 OUT UINT8 **EncryptedData,
713 IN UINT8 *EncryptedData,
757 OUT UINT8 **EncryptedData,
788 IN UINT8 *EncryptedData,
916 IN CONST UINT8 *Pkcs7Signature,
918 IN CONST CHAR8 *RequiredEKUs[],
919 IN CONST UINT32 RequiredEKUsSize,
920 IN BOOLEAN RequireAllPresent
954 OUT UINT8 **CertStack,
956 OUT UINT8 **TrustedCert,
1011 OUT UINT8 **SignedData,
1072 OUT UINT8 **SignerChainCerts,
1074 OUT UINT8 **UnchainCerts,
1202 IN OUT VOID *DhContext,
1234 IN OUT VOID *DhContext,
1267 IN OUT VOID *DhContext,
1268 OUT UINT8 *PublicKey,
1301 IN OUT VOID *DhContext,
1302 IN CONST UINT8 *PeerPublicKey,
1380 IN VOID *RsaContext,
1439 IN OUT VOID *RsaContext,
1476 IN OUT VOID *RsaContext,
1478 OUT UINT8 *BigNumber,
1508 IN OUT VOID *RsaContext,
1510 IN CONST UINT8 *PublicExponent,
1571 IN VOID *RsaContext,
1574 OUT UINT8 *Signature,
1600 IN VOID *RsaContext,
1632 OUT VOID **RsaContext
1658 OUT VOID **RsaContext
1697 OUT VOID *Sha1Context
1719 OUT VOID *NewSha1Context
1745 IN OUT VOID *Sha1Context,
1775 IN OUT VOID *Sha1Context,
1776 OUT UINT8 *HashValue
1802 OUT UINT8 *HashValue
1832 OUT VOID *Sha256Context
1854 OUT VOID *NewSha256Context
1878 IN OUT VOID *Sha256Context,
1906 IN OUT VOID *Sha256Context,
1907 OUT UINT8 *HashValue
1933 OUT UINT8 *HashValue
1965 OUT VOID *Sha384Context
1987 OUT VOID *NewSha384Context
2011 IN OUT VOID *Sha384Context,
2039 IN OUT VOID *Sha384Context,
2040 OUT UINT8 *HashValue
2066 OUT UINT8 *HashValue
2096 OUT VOID *Sha512Context
2118 OUT VOID *NewSha512Context
2142 IN OUT VOID *Sha512Context,
2170 IN OUT VOID *Sha512Context,
2171 OUT UINT8 *HashValue
2197 OUT UINT8 *HashValue
2228 OUT UINT8 *CertSubject,
2350 OUT UINT8 **SingleX509Cert
2374 IN OUT UINT8 **X509Stack,
2400 IN OUT UINT8 **X509Stack,
2454 OUT UINT8 **TBSCert,
2510 OUT UINT8 *SerialNumber, OPTIONAL
2538 OUT UINT8 *CertIssuer,
2565 OUT UINT8 *Oid, OPTIONAL
2596 OUT UINT8 *ExtensionData,
2829 UINT8 *BasicConstraints,
2830 UINTN *BasicConstraintsSize
2850(EFIAPI *DEPRECATED_EDKII_CRYPTO_TDES_INIT)(
2851 OUT VOID *TdesContext,
2858(EFIAPI *DEPRECATED_EDKII_CRYPTO_TDES_ECB_ENCRYPT)(
2859 IN VOID *TdesContext,
2867(EFIAPI *DEPRECATED_EDKII_CRYPTO_TDES_ECB_DECRYPT)(
2868 IN VOID *TdesContext,
2876(EFIAPI *DEPRECATED_EDKII_CRYPTO_TDES_CBC_ENCRYPT)(
2877 IN VOID *TdesContext,
2886(EFIAPI *DEPRECATED_EDKII_CRYPTO_TDES_CBC_DECRYPT)(
2887 IN VOID *TdesContext,
2934 OUT VOID *AesContext,
2947 IN VOID *AesContext,
2955(EFIAPI *DEPRECATED_EDKII_CRYPTO_AES_ECB_DECRYPT)(
2956 IN VOID *AesContext,
2994 IN VOID *AesContext,
3033 IN VOID *AesContext,
3053(EFIAPI *DEPRECATED_EDKII_CRYPTO_ARC4_INIT)(
3054 OUT VOID *Arc4Context,
3061(EFIAPI *DEPRECATED_EDKII_CRYPTO_ARC4_ENCRYPT)(
3062 IN OUT VOID *Arc4Context,
3070(EFIAPI *DEPRECATED_EDKII_CRYPTO_ARC4_DECRYPT)(
3071 IN OUT VOID *Arc4Context,
3079(EFIAPI *DEPRECATED_EDKII_CRYPTO_ARC4_RESET)(
3080 IN OUT VOID *Arc4Context
3115 OUT VOID *Sm3Context
3137 OUT VOID *NewSm3Context
3163 IN OUT VOID *Sm3Context,
3193 IN OUT VOID *Sm3Context,
3194 OUT UINT8 *HashValue
3220 OUT UINT8 *HashValue
3574 IN OUT UINT8 *Buffer,
3596 IN OUT VOID *Buffer,
3641 IN OUT VOID *Buffer,
3751 IN UINT16 *CipherId,
3786 IN UINT32 VerifyMode
3828 IN UINT8 *SessionId,
3829 IN UINT16 SessionIdLen
4010 IN OUT UINT16 *CipherId
4033 IN OUT UINT8 *CompressionId
4074 IN OUT UINT8 *SessionId,
4075 IN OUT UINT16 *SessionIdLen
4093 IN OUT UINT8 *ClientRandom
4111 IN OUT UINT8 *ServerRandom
4132 IN OUT UINT8 *KeyMaterial
4280 OUT VOID *KeyBuffer,
4341 IN VOID *RsaContext,
4344 IN UINT16 DigestLen,
4346 OUT UINT8 *Signature,
4371 IN VOID *RsaContext,
4376 IN UINT16 DigestLen,
5057 OUT VOID *EcPointResult,
5080 OUT VOID *EcPointResult,
5100 IN OUT VOID *EcPoint,
5240 IN OUT VOID *EcContext,
5241 OUT UINT8 *PublicKey,
5262 IN OUT VOID *EcContext,
5263 OUT UINT8 *PublicKey,
5295 IN OUT VOID *EcContext,
5324 OUT VOID **EcContext
5350 OUT VOID **EcContext
5389 OUT UINT8 *Signature,
5435 DEPRECATED_EDKII_CRYPTO_HMAC_MD5_FREE DeprecatedHmacMd5Free;
5436 DEPRECATED_EDKII_CRYPTO_HMAC_MD5_SET_KEY DeprecatedHmacMd5SetKey;
5437 DEPRECATED_EDKII_CRYPTO_HMAC_MD5_DUPLICATE DeprecatedHmacMd5Duplicate;
5438 DEPRECATED_EDKII_CRYPTO_HMAC_MD5_UPDATE DeprecatedHmacMd5Update;
5439 DEPRECATED_EDKII_CRYPTO_HMAC_MD5_FINAL DeprecatedHmacMd5Final;
5442 DEPRECATED_EDKII_CRYPTO_HMAC_SHA1_FREE DeprecatedHmacSha1Free;
5443 DEPRECATED_EDKII_CRYPTO_HMAC_SHA1_SET_KEY DeprecatedHmacSha1SetKey;
5444 DEPRECATED_EDKII_CRYPTO_HMAC_SHA1_DUPLICATE DeprecatedHmacSha1Duplicate;
5445 DEPRECATED_EDKII_CRYPTO_HMAC_SHA1_UPDATE DeprecatedHmacSha1Update;
5446 DEPRECATED_EDKII_CRYPTO_HMAC_SHA1_FINAL DeprecatedHmacSha1Final;
5456 DEPRECATED_EDKII_CRYPTO_MD4_INIT DeprecatedMd4Init;
5457 DEPRECATED_EDKII_CRYPTO_MD4_DUPLICATE DeprecatedMd4Duplicate;
5458 DEPRECATED_EDKII_CRYPTO_MD4_UPDATE DeprecatedMd4Update;
5459 DEPRECATED_EDKII_CRYPTO_MD4_FINAL DeprecatedMd4Final;
5460 DEPRECATED_EDKII_CRYPTO_MD4_HASH_ALL DeprecatedMd4HashAll;
5542 DEPRECATED_EDKII_CRYPTO_TDES_INIT DeprecatedTdesInit;
5543 DEPRECATED_EDKII_CRYPTO_TDES_ECB_ENCRYPT DeprecatedTdesEcbEncrypt;
5544 DEPRECATED_EDKII_CRYPTO_TDES_ECB_DECRYPT DeprecatedTdesEcbDecrypt;
5545 DEPRECATED_EDKII_CRYPTO_TDES_CBC_ENCRYPT DeprecatedTdesCbcEncrypt;
5546 DEPRECATED_EDKII_CRYPTO_TDES_CBC_DECRYPT DeprecatedTdesCbcDecrypt;
5551 DEPRECATED_EDKII_CRYPTO_AES_ECB_DECRYPT DeprecatedAesEcbDecrypt;
5556 DEPRECATED_EDKII_CRYPTO_ARC4_INIT DeprecatedArc4Init;
5557 DEPRECATED_EDKII_CRYPTO_ARC4_ENCRYPT DeprecatedArc4Encrypt;
5558 DEPRECATED_EDKII_CRYPTO_ARC4_DECRYPT DeprecatedArc4Decrypt;
5559 DEPRECATED_EDKII_CRYPTO_ARC4_RESET DeprecatedArc4Reset;
5715extern GUID gEdkiiCryptoProtocolGuid;
VOID EFIAPI Input(IN CHAR16 *Prompt OPTIONAL, OUT CHAR16 *InStr, IN UINTN StrLen)
BOOLEAN(EFIAPI * EDKII_CRYPTO_TLS_IN_HANDSHAKE)(IN VOID *Tls)
BOOLEAN(EFIAPI * EDKII_CRYPTO_HKDF_SHA_256_EXPAND)(IN CONST UINT8 *Prk, IN UINTN PrkSize, IN CONST UINT8 *Info, IN UINTN InfoSize, OUT UINT8 *Out, IN UINTN OutSize)
BOOLEAN(EFIAPI * EDKII_CRYPTO_AES_CBC_DECRYPT)(IN VOID *AesContext, IN CONST UINT8 *Input, IN UINTN InputSize, IN CONST UINT8 *Ivec, OUT UINT8 *Output)
BOOLEAN(EFIAPI * EDKII_CRYPTO_BIGNUM_SUB)(IN CONST VOID *BnA, IN CONST VOID *BnB, OUT VOID *BnRes)
BOOLEAN(EFIAPI * EDKII_CRYPTO_RSA_VERIFY_PKCS1)(IN VOID *RsaContext, IN CONST UINT8 *MessageHash, IN UINTN HashSize, IN CONST UINT8 *Signature, IN UINTN SigSize)
BOOLEAN(EFIAPI * EDKII_CRYPTO_EC_GET_PUBLIC_KEY_FROM_X509)(IN CONST UINT8 *Cert, IN UINTN CertSize, OUT VOID **EcContext)
EFI_STATUS(EFIAPI * EDKII_CRYPTO_TLS_SET_SIGNATURE_ALGO_LIST)(IN VOID *Tls, IN UINT8 *Data, IN UINTN DataSize)
EFI_STATUS(EFIAPI * EDKII_CRYPTO_TLS_DO_HANDSHAKE)(IN VOID *Tls, IN UINT8 *BufferIn OPTIONAL, IN UINTN BufferInSize OPTIONAL, OUT UINT8 *BufferOut OPTIONAL, IN OUT UINTN *BufferOutSize)
VOID(EFIAPI * EDKII_CRYPTO_BIGNUM_CONTEXT_FREE)(IN VOID *BnCtx)
EFI_STATUS(EFIAPI * EDKII_CRYPTO_TLS_HANDLE_ALERT)(IN VOID *Tls, IN UINT8 *BufferIn OPTIONAL, IN UINTN BufferInSize OPTIONAL, OUT UINT8 *BufferOut OPTIONAL, IN OUT UINTN *BufferOutSize)
UINTN(EFIAPI * EDKII_CRYPTO_AES_GET_CONTEXT_SIZE)(VOID)
BOOLEAN(EFIAPI * EDKII_CRYPTO_PKCS7_SIGN)(IN CONST UINT8 *PrivateKey, IN UINTN PrivateKeySize, IN CONST UINT8 *KeyPassword, IN UINT8 *InData, IN UINTN InDataSize, IN UINT8 *SignCert, IN UINT8 *OtherCerts OPTIONAL, OUT UINT8 **SignedData, OUT UINTN *SignedDataSize)
UINTN(EFIAPI * EDKII_CRYPTO_SHA256_GET_CONTEXT_SIZE)(VOID)
BOOLEAN(EFIAPI * EDKII_CRYPTO_PARALLEL_HASH_ALL)(IN CONST VOID *Input, IN UINTN InputByteLen, IN UINTN BlockSize, OUT VOID *Output, IN UINTN OutputByteLen, IN CONST VOID *Customization, IN UINTN CustomByteLen)
BOOLEAN(EFIAPI * EDKII_CRYPTO_X509_CONSTRUCT_CERTIFICATE_STACK)(IN OUT UINT8 **X509Stack,...)
BOOLEAN(EFIAPI * EDKII_CRYPTO_MD5_UPDATE)(IN OUT VOID *Md5Context, IN CONST VOID *Data, IN UINTN DataSize)
EFI_STATUS(EFIAPI * EDKII_CRYPTO_TLS_GET_KEY_MATERIAL)(IN VOID *Tls, IN OUT UINT8 *KeyMaterial)
BOOLEAN(EFIAPI * EDKII_CRYPTO_BIGNUM_EXP_MOD)(IN CONST VOID *BnA, IN CONST VOID *BnP, IN CONST VOID *BnM, OUT VOID *BnRes)
EFI_STATUS(EFIAPI * EDKII_CRYPTO_X509_GET_ORGANIZATION_NAME)(IN CONST UINT8 *Cert, IN UINTN CertSize, OUT CHAR8 *NameBuffer OPTIONAL, IN OUT UINTN *NameBufferSize)
EFI_STATUS(EFIAPI * EDKII_CRYPTO_TLS_SET_COMPRESSION_METHOD)(IN UINT8 CompMethod)
BOOLEAN(EFIAPI * EDKII_CRYPTO_PKCS7_GET_SIGNERS)(IN CONST UINT8 *P7Data, IN UINTN P7Length, OUT UINT8 **CertStack, OUT UINTN *StackLength, OUT UINT8 **TrustedCert, OUT UINTN *CertLength)
BOOLEAN(EFIAPI * EDKII_CRYPTO_SHA256_UPDATE)(IN OUT VOID *Sha256Context, IN CONST VOID *Data, IN UINTN DataSize)
EFI_STATUS(EFIAPI * EDKII_CRYPTO_TLS_GET_HOST_PRIVATE_KEY)(IN VOID *Tls, OUT VOID *Data, IN OUT UINTN *DataSize)
BOOLEAN(EFIAPI * EDKII_CRYPTO_AES_INIT)(OUT VOID *AesContext, IN CONST UINT8 *Key, IN UINTN KeyLength)
BOOLEAN(EFIAPI * EDKII_CRYPTO_X509_CONSTRUCT_CERTIFICATE)(IN CONST UINT8 *Cert, IN UINTN CertSize, OUT UINT8 **SingleX509Cert)
EFI_STATUS(EFIAPI * EDKII_CRYPTO_TLS_GET_HOST_PUBLIC_CERT)(IN VOID *Tls, OUT VOID *Data, IN OUT UINTN *DataSize)
VOID(EFIAPI * EDKII_CRYPTO_TLS_SET_VERIFY)(IN VOID *Tls, IN UINT32 VerifyMode)
BOOLEAN(EFIAPI * EDKII_CRYPTO_SHA256_DUPLICATE)(IN CONST VOID *Sha256Context, OUT VOID *NewSha256Context)
BOOLEAN(EFIAPI * EDKII_CRYPTO_HMAC_SHA256_FINAL)(IN OUT VOID *HmacSha256Context, OUT UINT8 *HmacValue)
BOOLEAN(EFIAPI * EDKII_CRYPTO_DH_GENERATE_KEY)(IN OUT VOID *DhContext, OUT UINT8 *PublicKey, IN OUT UINTN *PublicKeySize)
BOOLEAN(EFIAPI * EDKII_CRYPTO_X509_GET_VALIDITY)(IN CONST UINT8 *Cert, IN UINTN CertSize, IN UINT8 *From, IN OUT UINTN *FromSize, IN UINT8 *To, IN OUT UINTN *ToSize)
EFI_STATUS(EFIAPI * EDKII_CRYPTO_TLS_GET_CERT_REVOCATION_LIST)(OUT VOID *DATA, IN OUT UINTN *DataSize)
VOID *(EFIAPI * EDKII_CRYPTO_EC_GROUP_INIT)(IN UINTN CryptoNid)
UINT8(EFIAPI * EDKII_CRYPTO_TLS_GET_CONNECTION_END)(IN VOID *Tls)
UINTN(EFIAPI * DEPRECATED_EDKII_CRYPTO_MD4_GET_CONTEXT_SIZE)(VOID)
UINT16(EFIAPI * EDKII_CRYPTO_TLS_GET_VERSION)(IN VOID *Tls)
BOOLEAN(EFIAPI * EDKII_AEAD_AES_GCM_ENCRYPT)(IN CONST UINT8 *Key, IN UINTN KeySize, IN CONST UINT8 *Iv, IN UINTN IvSize, IN CONST UINT8 *AData, IN UINTN ADataSize, IN CONST UINT8 *DataIn, IN UINTN DataInSize, OUT UINT8 *TagOut, IN UINTN TagSize, OUT UINT8 *DataOut, OUT UINTN *DataOutSize)
VOID *(EFIAPI * EDKII_CRYPTO_BIGNUM_NEW_CONTEXT)(VOID)
UINTN(EFIAPI * DEPRECATED_EDKII_CRYPTO_ARC4_GET_CONTEXT_SIZE)(VOID)
BOOLEAN(EFIAPI * EDKII_CRYPTO_HMAC_SHA384_DUPLICATE)(IN CONST VOID *HmacSha384Context, OUT VOID *NewHmacSha384Context)
BOOLEAN(EFIAPI * EDKII_CRYPTO_EC_GENERATE_KEY)(IN OUT VOID *EcContext, OUT UINT8 *PublicKey, IN OUT UINTN *PublicKeySize)
BOOLEAN(EFIAPI * EDKII_CRYPTO_BIGNUM_IS_ODD)(IN CONST VOID *Bn)
VOID(EFIAPI * EDKII_CRYPTO_EC_FREE)(IN VOID *EcContext)
VOID *(EFIAPI * EDKII_CRYPTO_HMAC_SHA256_NEW)(VOID)
BOOLEAN(EFIAPI * EDKII_CRYPTO_EC_GET_PUB_KEY)(IN OUT VOID *EcContext, OUT UINT8 *PublicKey, IN OUT UINTN *PublicKeySize)
UINTN(EFIAPI * DEPRECATED_EDKII_CRYPTO_TDES_GET_CONTEXT_SIZE)(VOID)
BOOLEAN(EFIAPI * EDKII_CRYPTO_MD5_HASH_ALL)(IN CONST VOID *Data, IN UINTN DataSize, OUT UINT8 *HashValue)
BOOLEAN(EFIAPI * EDKII_CRYPTO_PKCS7_GET_ATTACHED_CONTENT)(IN CONST UINT8 *P7Data, IN UINTN P7Length, OUT VOID **Content, OUT UINTN *ContentSize)
EFI_STATUS(EFIAPI * EDKII_CRYPTO_TLS_SET_CIPHER_LIST)(IN VOID *Tls, IN UINT16 *CipherId, IN UINTN CipherNum)
UINTN(EFIAPI * EDKII_CRYPTO_BIGNUM_BYTES)(IN CONST VOID *Bn)
BOOLEAN(EFIAPI * EDKII_CRYPTO_AUTHENTICODE_VERIFY)(IN CONST UINT8 *AuthData, IN UINTN DataSize, IN CONST UINT8 *TrustedCert, IN UINTN CertSize, IN CONST UINT8 *ImageHash, IN UINTN HashSize)
INTN(EFIAPI * EDKII_CRYPTO_TLS_WRITE)(IN VOID *Tls, IN VOID *Buffer, IN UINTN BufferSize)
VOID(EFIAPI * EDKII_CRYPTO_HMAC_SHA384_FREE)(IN VOID *HmacSha384Ctx)
EFI_STATUS(EFIAPI * EDKII_CRYPTO_TLS_GET_SESSION_ID)(IN VOID *Tls, IN OUT UINT8 *SessionId, IN OUT UINT16 *SessionIdLen)
EFI_STATUS(EFIAPI * EDKII_CRYPTO_TLS_SHUTDOWN)(IN VOID *Tls)
BOOLEAN(EFIAPI * EDKII_CRYPTO_PKCS7_GET_CERTIFICATES_LIST)(IN CONST UINT8 *P7Data, IN UINTN P7Length, OUT UINT8 **SignerChainCerts, OUT UINTN *ChainLength, OUT UINT8 **UnchainCerts, OUT UINTN *UnchainLength)
BOOLEAN(EFIAPI * EDKII_CRYPTO_SHA1_INIT)(OUT VOID *Sha1Context)
VOID(EFIAPI * EDKII_CRYPTO_X509_FREE)(IN VOID *X509Cert)
BOOLEAN(EFIAPI * EDKII_CRYPTO_X509_CONSTRUCT_CERTIFICATE_STACK_V)(IN OUT UINT8 **X509Stack, IN VA_LIST Args)
BOOLEAN(EFIAPI * EDKII_CRYPTO_X509_GET_SUBJECT_NAME)(IN CONST UINT8 *Cert, IN UINTN CertSize, OUT UINT8 *CertSubject, IN OUT UINTN *SubjectSize)
BOOLEAN(EFIAPI * EDKII_CRYPTO_EC_POINT_ADD)(IN CONST VOID *EcGroup, OUT VOID *EcPointResult, IN CONST VOID *EcPointA, IN CONST VOID *EcPointB, IN VOID *BnCtx)
EFI_STATUS(EFIAPI * EDKII_CRYPTO_TLS_SET_CONNECTION_END)(IN VOID *Tls, IN BOOLEAN IsServer)
VOID *(EFIAPI * EDKII_CRYPTO_DH_NEW)(VOID)
BOOLEAN(EFIAPI * EDKII_CRYPTO_SHA256_INIT)(OUT VOID *Sha256Context)
BOOLEAN(EFIAPI * EDKII_CRYPTO_RSA_PKCS1_SIGN)(IN VOID *RsaContext, IN CONST UINT8 *MessageHash, IN UINTN HashSize, OUT UINT8 *Signature, IN OUT UINTN *SigSize)
BOOLEAN(EFIAPI * EDKII_CRYPTO_HMAC_SHA256_DUPLICATE)(IN CONST VOID *HmacSha256Context, OUT VOID *NewHmacSha256Context)
BOOLEAN(EFIAPI * EDKII_CRYPTO_EC_DH_COMPUTE_KEY)(IN OUT VOID *EcContext, IN CONST UINT8 *PeerPublic, IN UINTN PeerPublicSize, IN CONST INT32 *CompressFlag, OUT UINT8 *Key, IN OUT UINTN *KeySize)
BOOLEAN(EFIAPI * EDKII_CRYPTO_RSA_PSS_VERIFY)(IN VOID *RsaContext, IN CONST UINT8 *Message, IN UINTN MsgSize, IN CONST UINT8 *Signature, IN UINTN SigSize, IN UINT16 DigestLen, IN UINT16 SaltLen)
BOOLEAN(EFIAPI * EDKII_CRYPTO_RANDOM_SEED)(IN CONST UINT8 *Seed OPTIONAL, IN UINTN SeedSize)
UINTN(EFIAPI * EDKII_CRYPTO_SM3_GET_CONTEXT_SIZE)(VOID)
EFI_STATUS(EFIAPI * EDKII_CRYPTO_TLS_GET_CURRENT_CIPHER)(IN VOID *Tls, IN OUT UINT16 *CipherId)
BOOLEAN(EFIAPI * EDKII_CRYPTO_X509_GET_SERIAL_NUMBER)(IN CONST UINT8 *Cert, IN UINTN CertSize, OUT UINT8 *SerialNumber, OPTIONAL IN OUT UINTN *SerialNumberSize)
EFI_STATUS(EFIAPI * EDKII_CRYPTO_TLS_GET_CURRENT_COMPRESSION_ID)(IN VOID *Tls, IN OUT UINT8 *CompressionId)
BOOLEAN(EFIAPI * EDKII_CRYPTO_HMAC_SHA384_ALL)(IN CONST VOID *Data, IN UINTN DataSize, IN CONST UINT8 *Key, IN UINTN KeySize, OUT UINT8 *HmacValue)
BOOLEAN(EFIAPI * EDKII_CRYPTO_PKCS1V2_DECRYPT)(IN CONST UINT8 *PrivateKey, IN UINTN PrivateKeySize, IN UINT8 *EncryptedData, IN UINTN EncryptedDataSize, OUT UINT8 **OutData, OUT UINTN *OutDataSize)
BOOLEAN(EFIAPI * EDKII_CRYPTO_HMAC_SHA384_SET_KEY)(OUT VOID *HmacSha384Context, IN CONST UINT8 *Key, IN UINTN KeySize)
INT32(EFIAPI * EDKII_CRYPTO_X509_COMPARE_DATE_TIME)(IN CONST VOID *DateTime1, IN CONST VOID *DateTime2)
EFI_STATUS(EFIAPI * EDKII_CRYPTO_TLS_SET_HOST_PUBLIC_CERT)(IN VOID *Tls, IN VOID *Data, IN UINTN DataSize)
EFI_STATUS(EFIAPI * EDKII_CRYPTO_TLS_SET_CERT_REVOCATION_LIST)(IN VOID *Data, IN UINTN DataSize)
EFI_STATUS(EFIAPI * EDKII_CRYPTO_PKCS7_VERIFY_EKU)(IN CONST UINT8 *Pkcs7Signature, IN CONST UINT32 SignatureSize, IN CONST CHAR8 *RequiredEKUs[], IN CONST UINT32 RequiredEKUsSize, IN BOOLEAN RequireAllPresent)
EFI_STATUS(EFIAPI * EDKII_CRYPTO_TLS_GET_EXPORT_KEY)(IN VOID *Tls, IN CONST VOID *Label, IN CONST VOID *Context, IN UINTN ContextLen, OUT VOID *KeyBuffer, IN UINTN KeyBufferLen)
BOOLEAN(EFIAPI * EDKII_CRYPTO_ASN1_GET_TAG)(IN OUT UINT8 **Ptr, IN CONST UINT8 *End, OUT UINTN *Length, IN UINT32 Tag)
VOID *(EFIAPI * EDKII_CRYPTO_BIGNUM_FROM_BIN)(IN CONST UINT8 *Buf, IN UINTN Len)
BOOLEAN(EFIAPI * EDKII_CRYPTO_EC_POINT_MUL)(IN CONST VOID *EcGroup, OUT VOID *EcPointResult, IN CONST VOID *EcPoint, IN CONST VOID *BnPScalar, IN VOID *BnCtx)
BOOLEAN(EFIAPI * EDKII_CRYPTO_BIGNUM_R_SHIFT)(IN CONST VOID *Bn, IN UINTN N, OUT VOID *BnRes)
BOOLEAN(EFIAPI * EDKII_CRYPTO_AES_CBC_ENCRYPT)(IN VOID *AesContext, IN CONST UINT8 *Input, IN UINTN InputSize, IN CONST UINT8 *Ivec, OUT UINT8 *Output)
BOOLEAN(EFIAPI * EDKII_CRYPTO_MD5_FINAL)(IN OUT VOID *Md5Context, OUT UINT8 *HashValue)
BOOLEAN(EFIAPI * EDKII_CRYPTO_HMAC_SHA256_ALL)(IN CONST VOID *Data, IN UINTN DataSize, IN CONST UINT8 *Key, IN UINTN KeySize, OUT UINT8 *HmacValue)
BOOLEAN(EFIAPI * EDKII_CRYPTO_EC_POINT_SET_AFFINE_COORDINATES)(IN CONST VOID *EcGroup, IN VOID *EcPoint, IN CONST VOID *BnX, IN CONST VOID *BnY, IN VOID *BnCtx)
BOOLEAN(EFIAPI * EDKII_CRYPTO_BIGNUM_MOD)(IN CONST VOID *BnA, IN CONST VOID *BnB, OUT VOID *BnRes)
BOOLEAN(EFIAPI * EDKII_CRYPTO_SHA256_HASH_ALL)(IN CONST VOID *Data, IN UINTN DataSize, OUT UINT8 *HashValue)
VOID(EFIAPI * EDKII_CRYPTO_DH_FREE)(IN VOID *DhContext)
EFI_STATUS(EFIAPI * EDKII_CRYPTO_TLS_GET_CA_CERTIFICATE)(IN VOID *Tls, OUT VOID *Data, IN OUT UINTN *DataSize)
BOOLEAN(EFIAPI * DEPRECATED_EDKII_CRYPTO_AES_ECB_ENCRYPT)(IN VOID *AesContext, IN CONST UINT8 *Input, IN UINTN InputSize, OUT UINT8 *Output)
INTN(EFIAPI * EDKII_CRYPTO_TLS_CTRL_TRAFFIC_IN)(IN VOID *Tls, IN VOID *Buffer, IN UINTN BufferSize)
VOID *(EFIAPI * EDKII_CRYPTO_BIGNUM_COPY)(OUT VOID *BnDst, IN CONST VOID *BnSrc)
BOOLEAN(EFIAPI * EDKII_CRYPTO_HKDF_SHA_384_EXTRACT)(IN CONST UINT8 *Key, IN UINTN KeySize, IN CONST UINT8 *Salt, IN UINTN SaltSize, OUT UINT8 *PrkOut, UINTN PrkOutSize)
VOID(EFIAPI * EDKII_CRYPTO_BIGNUM_FREE)(IN VOID *Bn, IN BOOLEAN Clear)
BOOLEAN(EFIAPI * EDKII_CRYPTO_SHA512_UPDATE)(IN OUT VOID *Sha512Context, IN CONST VOID *Data, IN UINTN DataSize)
BOOLEAN(EFIAPI * EDKII_CRYPTO_IMAGE_TIMESTAMP_VERIFY)(IN CONST UINT8 *AuthData, IN UINTN DataSize, IN CONST UINT8 *TsaCert, IN UINTN CertSize, OUT EFI_TIME *SigningTime)
BOOLEAN(EFIAPI * EDKII_CRYPTO_SM3_HASH_ALL)(IN CONST VOID *Data, IN UINTN DataSize, OUT UINT8 *HashValue)
CONST VOID *(EFIAPI * EDKII_CRYPTO_BIGNUM_VALUE_ONE)(VOID)
BOOLEAN(EFIAPI * EDKII_CRYPTO_SHA384_UPDATE)(IN OUT VOID *Sha384Context, IN CONST VOID *Data, IN UINTN DataSize)
VOID(EFIAPI * EDKII_CRYPTO_BIGNUM_CONST_TIME)(IN VOID *Bn)
BOOLEAN(EFIAPI * EDKII_CRYPTO_HMAC_SHA384_UPDATE)(IN OUT VOID *HmacSha384Context, IN CONST VOID *Data, IN UINTN DataSize)
BOOLEAN(EFIAPI * EDKII_CRYPTO_SHA256_FINAL)(IN OUT VOID *Sha256Context, OUT UINT8 *HashValue)
BOOLEAN(EFIAPI * EDKII_CRYPTO_HKDF_SHA_256_EXTRACT)(IN CONST UINT8 *Key, IN UINTN KeySize, IN CONST UINT8 *Salt, IN UINTN SaltSize, OUT UINT8 *PrkOut, UINTN PrkOutSize)
VOID *(EFIAPI * DEPRECATED_EDKII_CRYPTO_HMAC_MD5_NEW)(VOID)
VOID(EFIAPI * EDKII_CRYPTO_EC_POINT_DE_INIT)(IN VOID *EcPoint, IN BOOLEAN Clear)
BOOLEAN(EFIAPI * EDKII_CRYPTO_RSA_GET_PUBLIC_KEY_FROM_X509)(IN CONST UINT8 *Cert, IN UINTN CertSize, OUT VOID **RsaContext)
BOOLEAN(EFIAPI * EDKII_CRYPTO_X509_VERIFY_CERT_CHAIN)(IN CONST UINT8 *RootCert, IN UINTN RootCertLength, IN CONST UINT8 *CertChain, IN UINTN CertChainLength)
BOOLEAN(EFIAPI * EDKII_CRYPTO_SM3_UPDATE)(IN OUT VOID *Sm3Context, IN CONST VOID *Data, IN UINTN DataSize)
BOOLEAN(EFIAPI * EDKII_CRYPTO_EC_DSA_SIGN)(IN VOID *EcContext, IN UINTN HashNid, IN CONST UINT8 *MessageHash, IN UINTN HashSize, OUT UINT8 *Signature, IN OUT UINTN *SigSize)
UINT32(EFIAPI * EDKII_CRYPTO_TLS_GET_VERIFY)(IN VOID *Tls)
BOOLEAN(EFIAPI * EDKII_CRYPTO_HKDF_SHA_256_EXTRACT_AND_EXPAND)(IN CONST UINT8 *Key, IN UINTN KeySize, IN CONST UINT8 *Salt, IN UINTN SaltSize, IN CONST UINT8 *Info, IN UINTN InfoSize, OUT UINT8 *Out, IN UINTN OutSize)
VOID(EFIAPI * EDKII_CRYPTO_EC_GROUP_FREE)(IN VOID *EcGroup)
EFI_STATUS(EFIAPI * EDKII_CRYPTO_TLS_SET_VERSION)(IN VOID *Tls, IN UINT8 MajorVer, IN UINT8 MinorVer)
EFI_STATUS(EFIAPI * EDKII_CRYPTO_TLS_SET_HOST_PRIVATE_KEY_EX)(IN VOID *Tls, IN VOID *Data, IN UINTN DataSize, IN VOID *Password OPTIONAL)
BOOLEAN(EFIAPI * EDKII_CRYPTO_X509_GET_EXTENSION_DATA)(IN CONST UINT8 *Cert, IN UINTN CertSize, IN CONST UINT8 *Oid, IN UINTN OidSize, OUT UINT8 *ExtensionData, IN OUT UINTN *ExtensionDataSize)
VOID *(EFIAPI * EDKII_CRYPTO_EC_NEW_BY_NID)(IN UINTN Nid)
BOOLEAN(EFIAPI * EDKII_CRYPTO_EC_POINT_GET_AFFINE_COORDINATES)(IN CONST VOID *EcGroup, IN CONST VOID *EcPoint, OUT VOID *BnX, OUT VOID *BnY, IN VOID *BnCtx)
BOOLEAN(EFIAPI * EDKII_CRYPTO_SHA1_HASH_ALL)(IN CONST VOID *Data, IN UINTN DataSize, OUT UINT8 *HashValue)
VOID(EFIAPI * EDKII_CRYPTO_PKCS7_FREE_SIGNERS)(IN UINT8 *Certs)
BOOLEAN(EFIAPI * EDKII_CRYPTO_EC_POINT_INVERT)(IN CONST VOID *EcGroup, IN OUT VOID *EcPoint, IN VOID *BnCtx)
BOOLEAN(EFIAPI * EDKII_CRYPTO_MD5_DUPLICATE)(IN CONST VOID *Md5Context, OUT VOID *NewMd5Context)
BOOLEAN(EFIAPI * EDKII_CRYPTO_BIGNUM_SET_UINT)(IN VOID *Bn, IN UINTN Val)
BOOLEAN(EFIAPI * EDKII_CRYPTO_HMAC_SHA256_UPDATE)(IN OUT VOID *HmacSha256Context, IN CONST VOID *Data, IN UINTN DataSize)
BOOLEAN(EFIAPI * EDKII_CRYPTO_RSA_OAEP_ENCRYPT)(IN VOID *RsaContext, IN UINT8 *InData, IN UINTN InDataSize, IN CONST UINT8 *PrngSeed OPTIONAL, IN UINTN PrngSeedSize OPTIONAL, IN UINT16 DigestLen OPTIONAL, OUT UINT8 **EncryptedData, OUT UINTN *EncryptedDataSize)
BOOLEAN(EFIAPI * EDKII_CRYPTO_EC_GET_PRIVATE_KEY_FROM_PEM)(IN CONST UINT8 *PemData, IN UINTN PemSize, IN CONST CHAR8 *Password, OUT VOID **EcContext)
UINTN(EFIAPI * EDKII_CRYPTO_BIGNUM_BITS)(IN CONST VOID *Bn)
BOOLEAN(EFIAPI * EDKII_CRYPTO_X509_GET_EXTENDED_BASIC_CONSTRAINTS)(CONST UINT8 *Cert, UINTN CertSize, UINT8 *BasicConstraints, UINTN *BasicConstraintsSize)
BOOLEAN(EFIAPI * EDKII_CRYPTO_PKCS1_ENCRYPT_V2)(IN CONST UINT8 *PublicKey, IN UINTN PublicKeySize, IN UINT8 *InData, IN UINTN InDataSize, IN CONST UINT8 *PrngSeed OPTIONAL, IN UINTN PrngSeedSize OPTIONAL, OUT UINT8 **EncryptedData, OUT UINTN *EncryptedDataSize)
BOOLEAN(EFIAPI * EDKII_CRYPTO_RSA_GENERATE_KEY)(IN OUT VOID *RsaContext, IN UINTN ModulusLength, IN CONST UINT8 *PublicExponent, IN UINTN PublicExponentSize)
VOID(EFIAPI * EDKII_CRYPTO_TLS_CTX_FREE)(IN VOID *TlsCtx)
BOOLEAN(EFIAPI * EDKII_CRYPTO_BIGNUM_INVERSE_MOD)(IN CONST VOID *BnA, IN CONST VOID *BnM, OUT VOID *BnRes)
VOID *(EFIAPI * EDKII_CRYPTO_RSA_NEW)(VOID)
BOOLEAN(EFIAPI * EDKII_CRYPTO_X509_GET_TBS_CERT)(IN CONST UINT8 *Cert, IN UINTN CertSize, OUT UINT8 **TBSCert, OUT UINTN *TBSCertSize)
BOOLEAN(EFIAPI * EDKII_CRYPTO_SHA384_HASH_ALL)(IN CONST VOID *Data, IN UINTN DataSize, OUT UINT8 *HashValue)
BOOLEAN(EFIAPI * EDKII_CRYPTO_HMAC_SHA384_FINAL)(IN OUT VOID *HmacSha384Context, OUT UINT8 *HmacValue)
VOID *(EFIAPI * EDKII_CRYPTO_BIGNUM_INIT)(VOID)
BOOLEAN(EFIAPI * EDKII_CRYPTO_SM3_INIT)(OUT VOID *Sm3Context)
UINTN(EFIAPI * EDKII_CRYPTO_GET_VERSION)(VOID)
BOOLEAN(EFIAPI * EDKII_CRYPTO_SM3_FINAL)(IN OUT VOID *Sm3Context, OUT UINT8 *HashValue)
BOOLEAN(EFIAPI * EDKII_CRYPTO_DH_GENERATE_PARAMETER)(IN OUT VOID *DhContext, IN UINTN Generator, IN UINTN PrimeLength, OUT UINT8 *Prime)
BOOLEAN(EFIAPI * EDKII_CRYPTO_SHA384_INIT)(OUT VOID *Sha384Context)
VOID *(EFIAPI * EDKII_CRYPTO_HMAC_SHA384_NEW)(VOID)
BOOLEAN(EFIAPI * EDKII_CRYPTO_RSA_GET_PRIVATE_KEY_FROM_PEM)(IN CONST UINT8 *PemData, IN UINTN PemSize, IN CONST CHAR8 *Password, OUT VOID **RsaContext)
BOOLEAN(EFIAPI * EDKII_CRYPTO_BIGNUM_ADD_MOD)(IN CONST VOID *BnA, IN CONST VOID *BnB, IN CONST VOID *BnM, OUT VOID *BnRes)
BOOLEAN(EFIAPI * EDKII_CRYPTO_BIGNUM_DIV)(IN CONST VOID *BnA, IN CONST VOID *BnB, OUT VOID *BnRes)
BOOLEAN(EFIAPI * EDKII_CRYPTO_RSA_PSS_SIGN)(IN VOID *RsaContext, IN CONST UINT8 *Message, IN UINTN MsgSize, IN UINT16 DigestLen, IN UINT16 SaltLen, OUT UINT8 *Signature, IN OUT UINTN *SigSize)
VOID(EFIAPI * EDKII_CRYPTO_HMAC_SHA256_FREE)(IN VOID *HmacSha256Ctx)
EFI_STATUS(EFIAPI * EDKII_CRYPTO_TLS_SET_VERIFY_HOST)(IN VOID *Tls, IN UINT32 Flags, IN CHAR8 *HostName)
VOID *(EFIAPI * EDKII_CRYPTO_TLS_NEW)(IN VOID *TlsCtx)
BOOLEAN(EFIAPI * EDKII_CRYPTO_SHA1_DUPLICATE)(IN CONST VOID *Sha1Context, OUT VOID *NewSha1Context)
BOOLEAN(EFIAPI * EDKII_CRYPTO_SHA384_FINAL)(IN OUT VOID *Sha384Context, OUT UINT8 *HashValue)
BOOLEAN(EFIAPI * EDKII_CRYPTO_DH_COMPUTE_KEY)(IN OUT VOID *DhContext, IN CONST UINT8 *PeerPublicKey, IN UINTN PeerPublicKeySize, OUT UINT8 *Key, IN OUT UINTN *KeySize)
BOOLEAN(EFIAPI * EDKII_CRYPTO_EC_POINT_IS_ON_CURVE)(IN CONST VOID *EcGroup, IN CONST VOID *EcPoint, IN VOID *BnCtx)
BOOLEAN(EFIAPI * EDKII_CRYPTO_BIGNUM_ADD)(IN CONST VOID *BnA, IN CONST VOID *BnB, OUT VOID *BnRes)
BOOLEAN(EFIAPI * EDKII_CRYPTO_X509_GET_SIGNATURE_ALGORITHM)(IN CONST UINT8 *Cert, IN UINTN CertSize, OUT UINT8 *Oid, OPTIONAL IN OUT UINTN *OidSize)
BOOLEAN(EFIAPI * EDKII_CRYPTO_EC_POINT_SET_COMPRESSED_COORDINATES)(IN CONST VOID *EcGroup, IN VOID *EcPoint, IN CONST VOID *BnX, IN UINT8 YBit, IN VOID *BnCtx)
BOOLEAN(EFIAPI * EDKII_AEAD_AES_GCM_DECRYPT)(IN CONST UINT8 *Key, IN UINTN KeySize, IN CONST UINT8 *Iv, IN UINTN IvSize, IN CONST UINT8 *AData, IN UINTN ADataSize, IN CONST UINT8 *DataIn, IN UINTN DataInSize, IN CONST UINT8 *Tag, IN UINTN TagSize, OUT UINT8 *DataOut, OUT UINTN *DataOutSize)
VOID *(EFIAPI * EDKII_CRYPTO_TLS_CTX_NEW)(IN UINT8 MajorVer, IN UINT8 MinorVer)
BOOLEAN(EFIAPI * EDKII_CRYPTO_RSA_CHECK_KEY)(IN VOID *RsaContext)
BOOLEAN(EFIAPI * EDKII_CRYPTO_TLS_INITIALIZE)(VOID)
VOID(EFIAPI * EDKII_CRYPTO_TLS_GET_SERVER_RANDOM)(IN VOID *Tls, IN OUT UINT8 *ServerRandom)
BOOLEAN(EFIAPI * EDKII_CRYPTO_PKCS7_VERIFY)(IN CONST UINT8 *P7Data, IN UINTN P7DataLength, IN CONST UINT8 *TrustedCert, IN UINTN TrustedCertLength, IN CONST UINT8 *Data, IN UINTN DataLength)
BOOLEAN(EFIAPI * EDKII_CRYPTO_BIGNUM_IS_WORD)(IN CONST VOID *Bn, IN UINTN Num)
UINTN(EFIAPI * EDKII_CRYPTO_SHA384_GET_CONTEXT_SIZE)(VOID)
BOOLEAN(EFIAPI * EDKII_CRYPTO_X509_GET_EXTENDED_KEY_USAGE)(IN CONST UINT8 *Cert, IN UINTN CertSize, OUT UINT8 *Usage, IN OUT UINTN *UsageSize)
BOOLEAN(EFIAPI * EDKII_CRYPTO_X509_FORMAT_DATE_TIME)(IN CONST CHAR8 *DateTimeStr, OUT VOID *DateTime, IN OUT UINTN *DateTimeSize)
EFI_STATUS(EFIAPI * EDKII_CRYPTO_TLS_SET_CA_CERTIFICATE)(IN VOID *Tls, IN VOID *Data, IN UINTN DataSize)
BOOLEAN(EFIAPI * EDKII_CRYPTO_BIGNUM_SQR_MOD)(IN CONST VOID *BnA, IN CONST VOID *BnM, OUT VOID *BnRes)
BOOLEAN(EFIAPI * EDKII_CRYPTO_X509_GET_CERT_FROM_CERT_CHAIN)(IN CONST UINT8 *CertChain, IN UINTN CertChainLength, IN CONST INT32 CertIndex, OUT CONST UINT8 **Cert, OUT UINTN *CertLength)
EFI_STATUS(EFIAPI * EDKII_CRYPTO_TLS_SET_HOST_PRIVATE_KEY)(IN VOID *Tls, IN VOID *Data, IN UINTN DataSize)
BOOLEAN(EFIAPI * EDKII_CRYPTO_EC_POINT_EQUAL)(IN CONST VOID *EcGroup, IN CONST VOID *EcPointA, IN CONST VOID *EcPointB, IN VOID *BnCtx)
BOOLEAN(EFIAPI * EDKII_CRYPTO_HKDF_SHA_384_EXPAND)(IN CONST UINT8 *Prk, IN UINTN PrkSize, IN CONST UINT8 *Info, IN UINTN InfoSize, OUT UINT8 *Out, IN UINTN OutSize)
BOOLEAN(EFIAPI * EDKII_CRYPTO_SHA1_UPDATE)(IN OUT VOID *Sha1Context, IN CONST VOID *Data, IN UINTN DataSize)
BOOLEAN(EFIAPI * EDKII_CRYPTO_HKDF_SHA_384_EXTRACT_AND_EXPAND)(IN CONST UINT8 *Key, IN UINTN KeySize, IN CONST UINT8 *Salt, IN UINTN SaltSize, IN CONST UINT8 *Info, IN UINTN InfoSize, OUT UINT8 *Out, IN UINTN OutSize)
BOOLEAN(EFIAPI * EDKII_CRYPTO_X509_VERIFY_CERT)(IN CONST UINT8 *Cert, IN UINTN CertSize, IN CONST UINT8 *CACert, IN UINTN CACertSize)
VOID(EFIAPI * EDKII_CRYPTO_TLS_FREE)(IN VOID *Tls)
BOOLEAN(EFIAPI * EDKII_CRYPTO_BIGNUM_MUL_MOD)(IN CONST VOID *BnA, IN CONST VOID *BnB, IN CONST VOID *BnM, OUT VOID *BnRes)
BOOLEAN(EFIAPI * EDKII_CRYPTO_PKCS5_PW_HASH)(IN UINTN PasswordSize, IN CONST CHAR8 *Password, IN UINTN SaltSize, IN CONST UINT8 *Salt, IN UINTN IterationCount, IN UINTN DigestSize, IN UINTN OutputSize, OUT UINT8 *Output)
INTN(EFIAPI * EDKII_CRYPTO_TLS_READ)(IN VOID *Tls, IN OUT VOID *Buffer, IN UINTN BufferSize)
VOID *(EFIAPI * EDKII_CRYPTO_EC_POINT_INIT)(IN CONST VOID *EcGroup)
BOOLEAN(EFIAPI * EDKII_CRYPTO_RSA_PKCS1_VERIFY)(IN VOID *RsaContext, IN CONST UINT8 *MessageHash, IN UINTN HashSize, IN CONST UINT8 *Signature, IN UINTN SigSize)
BOOLEAN(EFIAPI * EDKII_CRYPTO_RANDOM_BYTES)(OUT UINT8 *Output, IN UINTN Size)
VOID(EFIAPI * EDKII_CRYPTO_X509_STACK_FREE)(IN VOID *X509Stack)
EFI_STATUS(EFIAPI * EDKII_CRYPTO_TLS_CLOSE_NOTIFY)(IN VOID *Tls, IN OUT UINT8 *Buffer, IN OUT UINTN *BufferSize)
BOOLEAN(EFIAPI * EDKII_CRYPTO_RSA_OAEP_DECRYPT)(IN VOID *RsaContext, IN UINT8 *EncryptedData, IN UINTN EncryptedDataSize, IN UINT16 DigestLen OPTIONAL, OUT UINT8 **OutData, OUT UINTN *OutDataSize)
BOOLEAN(EFIAPI * EDKII_CRYPTO_SHA512_HASH_ALL)(IN CONST VOID *Data, IN UINTN DataSize, OUT UINT8 *HashValue)
UINTN(EFIAPI * EDKII_CRYPTO_MD5_GET_CONTEXT_SIZE)(VOID)
VOID(EFIAPI * EDKII_CRYPTO_TLS_GET_CLIENT_RANDOM)(IN VOID *Tls, IN OUT UINT8 *ClientRandom)
INTN(EFIAPI * EDKII_CRYPTO_TLS_CTRL_TRAFFIC_OUT)(IN VOID *Tls, IN OUT VOID *Buffer, IN UINTN BufferSize)
INTN(EFIAPI * EDKII_CRYPTO_BIGNUM_CMP)(IN CONST VOID *BnA, IN CONST VOID *BnB)
BOOLEAN(EFIAPI * EDKII_CRYPTO_SHA1_FINAL)(IN OUT VOID *Sha1Context, OUT UINT8 *HashValue)
BOOLEAN(EFIAPI * EDKII_CRYPTO_SHA512_FINAL)(IN OUT VOID *Sha512Context, OUT UINT8 *HashValue)
BOOLEAN(EFIAPI * EDKII_CRYPTO_X509_GET_ISSUER_NAME)(IN CONST UINT8 *Cert, IN UINTN CertSize, OUT UINT8 *CertIssuer, IN OUT UINTN *CertIssuerSize)
BOOLEAN(EFIAPI * EDKII_CRYPTO_EC_DSA_VERIFY)(IN VOID *EcContext, IN UINTN HashNid, IN CONST UINT8 *MessageHash, IN UINTN HashSize, IN CONST UINT8 *Signature, IN UINTN SigSize)
BOOLEAN(EFIAPI * EDKII_CRYPTO_X509_GET_VERSION)(IN CONST UINT8 *Cert, IN UINTN CertSize, OUT UINTN *Version)
VOID *(EFIAPI * DEPRECATED_EDKII_CRYPTO_HMAC_SHA1_NEW)(VOID)
BOOLEAN(EFIAPI * EDKII_CRYPTO_EC_GROUP_GET_CURVE)(IN CONST VOID *EcGroup, OUT VOID *BnPrime, OUT VOID *BnA, OUT VOID *BnB, IN VOID *BnCtx)
VOID(EFIAPI * EDKII_CRYPTO_RSA_FREE)(IN VOID *RsaContext)
BOOLEAN(EFIAPI * EDKII_CRYPTO_SHA512_DUPLICATE)(IN CONST VOID *Sha512Context, OUT VOID *NewSha512Context)
BOOLEAN(EFIAPI * EDKII_CRYPTO_RSA_GET_KEY)(IN OUT VOID *RsaContext, IN RSA_KEY_TAG KeyTag, OUT UINT8 *BigNumber, IN OUT UINTN *BnSize)
UINTN(EFIAPI * EDKII_CRYPTO_SHA512_GET_CONTEXT_SIZE)(VOID)
BOOLEAN(EFIAPI * EDKII_CRYPTO_MD5_INIT)(OUT VOID *Md5Context)
EFI_STATUS(EFIAPI * EDKII_CRYPTO_X509_GET_COMMON_NAME)(IN CONST UINT8 *Cert, IN UINTN CertSize, OUT CHAR8 *CommonName OPTIONAL, IN OUT UINTN *CommonNameSize)
BOOLEAN(EFIAPI * EDKII_CRYPTO_SHA384_DUPLICATE)(IN CONST VOID *Sha384Context, OUT VOID *NewSha384Context)
BOOLEAN(EFIAPI * EDKII_CRYPTO_SM3_DUPLICATE)(IN CONST VOID *Sm3Context, OUT VOID *NewSm3Context)
INTN(EFIAPI * EDKII_CRYPTO_BIGNUM_TO_BIN)(IN CONST VOID *Bn, OUT UINT8 *Buf)
BOOLEAN(EFIAPI * EDKII_CRYPTO_EC_GROUP_GET_ORDER)(IN VOID *EcGroup, OUT VOID *BnOrder)
BOOLEAN(EFIAPI * EDKII_CRYPTO_RSA_SET_KEY)(IN OUT VOID *RsaContext, IN RSA_KEY_TAG KeyTag, IN CONST UINT8 *BigNumber, IN UINTN BnSize)
EFI_STATUS(EFIAPI * EDKII_CRYPTO_TLS_SET_EC_CURVE)(IN VOID *Tls, IN UINT8 *Data, IN UINTN DataSize)
BOOLEAN(EFIAPI * EDKII_CRYPTO_DH_SET_PARAMETER)(IN OUT VOID *DhContext, IN UINTN Generator, IN UINTN PrimeLength, IN CONST UINT8 *Prime)
EFI_STATUS(EFIAPI * EDKII_CRYPTO_TLS_SET_SESSIONID)(IN VOID *Tls, IN UINT8 *SessionId, IN UINT16 SessionIdLen)
BOOLEAN(EFIAPI * EDKII_CRYPTO_HMAC_SHA256_SET_KEY)(OUT VOID *HmacSha256Context, IN CONST UINT8 *Key, IN UINTN KeySize)
BOOLEAN(EFIAPI * EDKII_CRYPTO_SHA512_INIT)(OUT VOID *Sha512Context)
UINTN(EFIAPI * EDKII_CRYPTO_SHA1_GET_CONTEXT_SIZE)(VOID)
BOOLEAN(EFIAPI * EDKII_CRYPTO_X509_GET_KEY_USAGE)(IN CONST UINT8 *Cert, IN UINTN CertSize, OUT UINTN *Usage)
BOOLEAN(EFIAPI * EDKII_CRYPTO_EC_POINT_IS_AT_INFINITY)(IN CONST VOID *EcGroup, IN CONST VOID *EcPoint)
EDKII_CRYPTO_EC_GROUP_INIT EcGroupInit
EC.
EDKII_CRYPTO_RSA_PSS_SIGN RsaPssSign
RSA PSS.
EDKII_AEAD_AES_GCM_ENCRYPT AeadAesGcmEncrypt
AEAD AES-GCM.
EDKII_CRYPTO_GET_VERSION GetVersion
Version.
EDKII_CRYPTO_X509_GET_VERSION X509GetVersion
X509 (Continued)
EDKII_CRYPTO_MD5_GET_CONTEXT_SIZE Md5GetContextSize
Md5.
EDKII_CRYPTO_SM3_GET_CONTEXT_SIZE Sm3GetContextSize
SM3.
EDKII_CRYPTO_BIGNUM_INIT BigNumInit
BIGNUM.
DEPRECATED_EDKII_CRYPTO_HMAC_MD5_NEW DeprecatedHmacMd5New
HMAC MD5 - deprecated and unsupported.
DEPRECATED_EDKII_CRYPTO_HMAC_SHA1_NEW DeprecatedHmacSha1New
HMAC SHA1 - deprecated and unsupported.
EDKII_CRYPTO_HMAC_SHA384_NEW HmacSha384New
HMAC SHA384.
EDKII_CRYPTO_DH_NEW DhNew
DH.
EDKII_CRYPTO_TLS_INITIALIZE TlsInitialize
TLS.
EDKII_CRYPTO_PKCS1_ENCRYPT_V2 Pkcs1v2Encrypt
Pkcs.
EDKII_CRYPTO_X509_CONSTRUCT_CERTIFICATE_STACK_V X509ConstructCertificateStackV
X509 (Continued)
DEPRECATED_EDKII_CRYPTO_TDES_GET_CONTEXT_SIZE DeprecatedTdesGetContextSize
TDES - deprecated and unsupported.
EDKII_CRYPTO_TLS_SET_VERSION TlsSetVersion
TLS Set.
EDKII_CRYPTO_X509_GET_SUBJECT_NAME X509GetSubjectName
X509.
EDKII_CRYPTO_SHA1_GET_CONTEXT_SIZE Sha1GetContextSize
Sha1.
DEPRECATED_EDKII_CRYPTO_ARC4_GET_CONTEXT_SIZE DeprecatedArc4GetContextSize
Arc4 - deprecated and unsupported.
EDKII_CRYPTO_TLS_GET_VERSION TlsGetVersion
TLS Get.
EDKII_CRYPTO_TLS_SHUTDOWN TlsShutdown
TLS (continued)
EDKII_CRYPTO_AES_GET_CONTEXT_SIZE AesGetContextSize
AES - ECB Mode is deprecated and unsupported.
EDKII_CRYPTO_HKDF_SHA_256_EXTRACT_AND_EXPAND HkdfSha256ExtractAndExpand
HKDF.
EDKII_CRYPTO_SHA256_GET_CONTEXT_SIZE Sha256GetContextSize
Sha256.
EDKII_CRYPTO_SHA512_GET_CONTEXT_SIZE Sha512GetContextSize
Sha512.
EDKII_CRYPTO_HMAC_SHA256_NEW HmacSha256New
HMAC SHA256.
DEPRECATED_EDKII_CRYPTO_MD4_GET_CONTEXT_SIZE DeprecatedMd4GetContextSize
Md4 - deprecated and unsupported.
EDKII_CRYPTO_TLS_GET_EXPORT_KEY TlsGetExportKey
TLS Get (continued)
EDKII_CRYPTO_EC_GET_PUBLIC_KEY_FROM_X509 EcGetPublicKeyFromX509
Ec (Continued)
EDKII_CRYPTO_HMAC_SHA256_ALL HmacSha256All
HMAC SHA256 (continued)
EDKII_CRYPTO_HKDF_SHA_256_EXTRACT HkdfSha256Extract
HKDF (continued)
EDKII_CRYPTO_RSA_VERIFY_PKCS1 RsaVerifyPkcs1
RSA.
EDKII_CRYPTO_SHA384_GET_CONTEXT_SIZE Sha384GetContextSize
Sha384.
EDKII_CRYPTO_PARALLEL_HASH_ALL ParallelHash256HashAll
Parallel hash.
EDKII_CRYPTO_TLS_SET_HOST_PRIVATE_KEY_EX TlsSetHostPrivateKeyEx
TLS Set (continued)
EDKII_CRYPTO_RANDOM_SEED RandomSeed
Random.