A macro used to retrieve the FixedAtBuild PcdCryptoServiceFamilyEnable with a\r
typecast to its associcted structure type PCD_CRYPTO_SERVICE_FAMILY_ENABLE.\r
**/\r
-#define EDKII_CRYPTO_PCD ((const PCD_CRYPTO_SERVICE_FAMILY_ENABLE *) \\r
+#define EDKII_CRYPTO_PCD ((const PCD_CRYPTO_SERVICE_FAMILY_ENABLE *)\\r
(FixedPcdGetPtr (PcdCryptoServiceFamilyEnable)))\r
\r
/**\r
return EDKII_CRYPTO_VERSION;\r
}\r
\r
-//=====================================================================================\r
+// =====================================================================================\r
// One-Way Cryptographic Hash Primitives\r
-//=====================================================================================\r
+// =====================================================================================\r
\r
/**\r
MD4 is deprecated and unsupported any longer.\r
}\r
\r
#ifndef ENABLE_MD5_DEPRECATED_INTERFACES\r
+\r
/**\r
Retrieves the size, in bytes, of the context buffer required for MD5 hash operations.\r
\r
{\r
return BaseCryptLibServiceDeprecated ("Md5HashAll"), FALSE;\r
}\r
+\r
#else\r
+\r
/**\r
Retrieves the size, in bytes, of the context buffer required for MD5 hash operations.\r
\r
{\r
return CALL_BASECRYPTLIB (Md5.Services.HashAll, Md5HashAll, (Data, DataSize, HashValue), FALSE);\r
}\r
+\r
#endif\r
\r
#ifdef DISABLE_SHA1_DEPRECATED_INTERFACES\r
+\r
/**\r
Retrieves the size, in bytes, of the context buffer required for SHA-1 hash operations.\r
\r
{\r
return BaseCryptLibServiceDeprecated ("Sha1HashAll"), FALSE;\r
}\r
+\r
#else\r
+\r
/**\r
Retrieves the size, in bytes, of the context buffer required for SHA-1 hash operations.\r
\r
{\r
return CALL_BASECRYPTLIB (Sha1.Services.HashAll, Sha1HashAll, (Data, DataSize, HashValue), FALSE);\r
}\r
+\r
#endif\r
\r
/**\r
return CALL_BASECRYPTLIB (Sm3.Services.HashAll, Sm3HashAll, (Data, DataSize, HashValue), FALSE);\r
}\r
\r
-//=====================================================================================\r
+// =====================================================================================\r
// MAC (Message Authentication Code) Primitive\r
-//=====================================================================================\r
+// =====================================================================================\r
\r
/**\r
HMAC MD5 is deprecated and unsupported any longer.\r
return CALL_BASECRYPTLIB (HmacSha256.Services.Final, HmacSha256Final, (HmacSha256Context, HmacValue), FALSE);\r
}\r
\r
-//=====================================================================================\r
+// =====================================================================================\r
// Symmetric Cryptography Primitive\r
-//=====================================================================================\r
+// =====================================================================================\r
\r
/**\r
TDES is deprecated and unsupported any longer.\r
return BaseCryptLibServiceDeprecated ("Arc4Reset"), FALSE;\r
}\r
\r
-//=====================================================================================\r
+// =====================================================================================\r
// Asymmetric Cryptography Primitive\r
-//=====================================================================================\r
+// =====================================================================================\r
\r
/**\r
Allocates and initializes one RSA context for subsequent use.\r
RETURN_STATUS\r
EFIAPI\r
CryptoServiceX509GetOrganizationName (\r
- IN CONST UINT8 *Cert,\r
- IN UINTN CertSize,\r
- OUT CHAR8 *NameBuffer OPTIONAL,\r
- IN OUT UINTN *NameBufferSize\r
+ IN CONST UINT8 *Cert,\r
+ IN UINTN CertSize,\r
+ OUT CHAR8 *NameBuffer OPTIONAL,\r
+ IN OUT UINTN *NameBufferSize\r
)\r
{\r
return CALL_BASECRYPTLIB (X509.Services.GetOrganizationName, X509GetOrganizationName, (Cert, CertSize, NameBuffer, NameBufferSize), RETURN_UNSUPPORTED);\r
VOID\r
EFIAPI\r
CryptoServicePkcs7FreeSigners (\r
- IN UINT8 *Certs\r
+ IN UINT8 *Certs\r
)\r
{\r
CALL_VOID_BASECRYPTLIB (Pkcs.Services.Pkcs7FreeSigners, Pkcs7FreeSigners, (Certs));\r
return CALL_BASECRYPTLIB (Pkcs.Services.VerifyEKUsInPkcs7Signature, VerifyEKUsInPkcs7Signature, (Pkcs7Signature, SignatureSize, RequiredEKUs, RequiredEKUsSize, RequireAllPresent), FALSE);\r
}\r
\r
-\r
/**\r
Extracts the attached content from a PKCS#7 signed data if existed. The input signed\r
data could be wrapped in a ContentInfo structure.\r
return CALL_BASECRYPTLIB (Pkcs.Services.ImageTimestampVerify, ImageTimestampVerify, (AuthData, DataSize, TsaCert, CertSize, SigningTime), FALSE);\r
}\r
\r
-//=====================================================================================\r
+// =====================================================================================\r
// DH Key Exchange Primitive\r
-//=====================================================================================\r
+// =====================================================================================\r
\r
/**\r
Allocates and Initializes one Diffie-Hellman Context for subsequent use.\r
return CALL_BASECRYPTLIB (Dh.Services.ComputeKey, DhComputeKey, (DhContext, PeerPublicKey, PeerPublicKeySize, Key, KeySize), FALSE);\r
}\r
\r
-//=====================================================================================\r
+// =====================================================================================\r
// Pseudo-Random Generation Primitive\r
-//=====================================================================================\r
+// =====================================================================================\r
\r
/**\r
Sets up the seed value for the pseudorandom number generator.\r
return CALL_BASECRYPTLIB (Random.Services.Bytes, RandomBytes, (Output, Size), FALSE);\r
}\r
\r
-//=====================================================================================\r
+// =====================================================================================\r
// Key Derivation Function Primitive\r
-//=====================================================================================\r
+// =====================================================================================\r
\r
/**\r
Derive key data using HMAC-SHA256 based KDF.\r
VOID\r
EFIAPI\r
CryptoServiceTlsCtxFree (\r
- IN VOID *TlsCtx\r
+ IN VOID *TlsCtx\r
)\r
{\r
CALL_VOID_BASECRYPTLIB (Tls.Services.CtxFree, TlsCtxFree, (TlsCtx));\r
VOID *\r
EFIAPI\r
CryptoServiceTlsCtxNew (\r
- IN UINT8 MajorVer,\r
- IN UINT8 MinorVer\r
+ IN UINT8 MajorVer,\r
+ IN UINT8 MinorVer\r
)\r
{\r
return CALL_BASECRYPTLIB (Tls.Services.CtxNew, TlsCtxNew, (MajorVer, MinorVer), NULL);\r
VOID\r
EFIAPI\r
CryptoServiceTlsFree (\r
- IN VOID *Tls\r
+ IN VOID *Tls\r
)\r
{\r
CALL_VOID_BASECRYPTLIB (Tls.Services.Free, TlsFree, (Tls));\r
VOID *\r
EFIAPI\r
CryptoServiceTlsNew (\r
- IN VOID *TlsCtx\r
+ IN VOID *TlsCtx\r
)\r
{\r
return CALL_BASECRYPTLIB (Tls.Services.New, TlsNew, (TlsCtx), NULL);\r
BOOLEAN\r
EFIAPI\r
CryptoServiceTlsInHandshake (\r
- IN VOID *Tls\r
+ IN VOID *Tls\r
)\r
{\r
return CALL_BASECRYPTLIB (Tls.Services.InHandshake, TlsInHandshake, (Tls), FALSE);\r
EFI_STATUS\r
EFIAPI\r
CryptoServiceTlsDoHandshake (\r
- IN VOID *Tls,\r
- IN UINT8 *BufferIn OPTIONAL,\r
- IN UINTN BufferInSize OPTIONAL,\r
- OUT UINT8 *BufferOut OPTIONAL,\r
- IN OUT UINTN *BufferOutSize\r
+ IN VOID *Tls,\r
+ IN UINT8 *BufferIn OPTIONAL,\r
+ IN UINTN BufferInSize OPTIONAL,\r
+ OUT UINT8 *BufferOut OPTIONAL,\r
+ IN OUT UINTN *BufferOutSize\r
)\r
{\r
return CALL_BASECRYPTLIB (Tls.Services.DoHandshake, TlsDoHandshake, (Tls, BufferIn, BufferInSize, BufferOut, BufferOutSize), EFI_UNSUPPORTED);\r
EFI_STATUS\r
EFIAPI\r
CryptoServiceTlsHandleAlert (\r
- IN VOID *Tls,\r
- IN UINT8 *BufferIn OPTIONAL,\r
- IN UINTN BufferInSize OPTIONAL,\r
- OUT UINT8 *BufferOut OPTIONAL,\r
- IN OUT UINTN *BufferOutSize\r
+ IN VOID *Tls,\r
+ IN UINT8 *BufferIn OPTIONAL,\r
+ IN UINTN BufferInSize OPTIONAL,\r
+ OUT UINT8 *BufferOut OPTIONAL,\r
+ IN OUT UINTN *BufferOutSize\r
)\r
{\r
return CALL_BASECRYPTLIB (Tls.Services.HandleAlert, TlsHandleAlert, (Tls, BufferIn, BufferInSize, BufferOut, BufferOutSize), EFI_UNSUPPORTED);\r
EFI_STATUS\r
EFIAPI\r
CryptoServiceTlsCloseNotify (\r
- IN VOID *Tls,\r
- IN OUT UINT8 *Buffer,\r
- IN OUT UINTN *BufferSize\r
+ IN VOID *Tls,\r
+ IN OUT UINT8 *Buffer,\r
+ IN OUT UINTN *BufferSize\r
)\r
{\r
return CALL_BASECRYPTLIB (Tls.Services.CloseNotify, TlsCloseNotify, (Tls, Buffer, BufferSize), EFI_UNSUPPORTED);\r
INTN\r
EFIAPI\r
CryptoServiceTlsCtrlTrafficOut (\r
- IN VOID *Tls,\r
- IN OUT VOID *Buffer,\r
- IN UINTN BufferSize\r
+ IN VOID *Tls,\r
+ IN OUT VOID *Buffer,\r
+ IN UINTN BufferSize\r
)\r
{\r
return CALL_BASECRYPTLIB (Tls.Services.CtrlTrafficOut, TlsCtrlTrafficOut, (Tls, Buffer, BufferSize), 0);\r
INTN\r
EFIAPI\r
CryptoServiceTlsCtrlTrafficIn (\r
- IN VOID *Tls,\r
- IN VOID *Buffer,\r
- IN UINTN BufferSize\r
+ IN VOID *Tls,\r
+ IN VOID *Buffer,\r
+ IN UINTN BufferSize\r
)\r
{\r
return CALL_BASECRYPTLIB (Tls.Services.CtrlTrafficIn, TlsCtrlTrafficIn, (Tls, Buffer, BufferSize), 0);\r
INTN\r
EFIAPI\r
CryptoServiceTlsRead (\r
- IN VOID *Tls,\r
- IN OUT VOID *Buffer,\r
- IN UINTN BufferSize\r
+ IN VOID *Tls,\r
+ IN OUT VOID *Buffer,\r
+ IN UINTN BufferSize\r
)\r
{\r
return CALL_BASECRYPTLIB (Tls.Services.Read, TlsRead, (Tls, Buffer, BufferSize), 0);\r
INTN\r
EFIAPI\r
CryptoServiceTlsWrite (\r
- IN VOID *Tls,\r
- IN VOID *Buffer,\r
- IN UINTN BufferSize\r
+ IN VOID *Tls,\r
+ IN VOID *Buffer,\r
+ IN UINTN BufferSize\r
)\r
{\r
return CALL_BASECRYPTLIB (Tls.Services.Write, TlsWrite, (Tls, Buffer, BufferSize), 0);\r
EFI_STATUS\r
EFIAPI\r
CryptoServiceTlsSetVersion (\r
- IN VOID *Tls,\r
- IN UINT8 MajorVer,\r
- IN UINT8 MinorVer\r
+ IN VOID *Tls,\r
+ IN UINT8 MajorVer,\r
+ IN UINT8 MinorVer\r
)\r
{\r
return CALL_BASECRYPTLIB (TlsSet.Services.Version, TlsSetVersion, (Tls, MajorVer, MinorVer), EFI_UNSUPPORTED);\r
EFI_STATUS\r
EFIAPI\r
CryptoServiceTlsSetConnectionEnd (\r
- IN VOID *Tls,\r
- IN BOOLEAN IsServer\r
+ IN VOID *Tls,\r
+ IN BOOLEAN IsServer\r
)\r
{\r
return CALL_BASECRYPTLIB (TlsSet.Services.ConnectionEnd, TlsSetConnectionEnd, (Tls, IsServer), EFI_UNSUPPORTED);\r
EFI_STATUS\r
EFIAPI\r
CryptoServiceTlsSetCipherList (\r
- IN VOID *Tls,\r
- IN UINT16 *CipherId,\r
- IN UINTN CipherNum\r
+ IN VOID *Tls,\r
+ IN UINT16 *CipherId,\r
+ IN UINTN CipherNum\r
)\r
{\r
return CALL_BASECRYPTLIB (TlsSet.Services.CipherList, TlsSetCipherList, (Tls, CipherId, CipherNum), EFI_UNSUPPORTED);\r
EFI_STATUS\r
EFIAPI\r
CryptoServiceTlsSetCompressionMethod (\r
- IN UINT8 CompMethod\r
+ IN UINT8 CompMethod\r
)\r
{\r
return CALL_BASECRYPTLIB (TlsSet.Services.CompressionMethod, TlsSetCompressionMethod, (CompMethod), EFI_UNSUPPORTED);\r
VOID\r
EFIAPI\r
CryptoServiceTlsSetVerify (\r
- IN VOID *Tls,\r
- IN UINT32 VerifyMode\r
+ IN VOID *Tls,\r
+ IN UINT32 VerifyMode\r
)\r
{\r
CALL_VOID_BASECRYPTLIB (TlsSet.Services.Verify, TlsSetVerify, (Tls, VerifyMode));\r
EFI_STATUS\r
EFIAPI\r
CryptoServiceTlsSetVerifyHost (\r
- IN VOID *Tls,\r
- IN UINT32 Flags,\r
- IN CHAR8 *HostName\r
+ IN VOID *Tls,\r
+ IN UINT32 Flags,\r
+ IN CHAR8 *HostName\r
)\r
{\r
return CALL_BASECRYPTLIB (TlsSet.Services.VerifyHost, TlsSetVerifyHost, (Tls, Flags, HostName), EFI_UNSUPPORTED);\r
EFI_STATUS\r
EFIAPI\r
CryptoServiceTlsSetSessionId (\r
- IN VOID *Tls,\r
- IN UINT8 *SessionId,\r
- IN UINT16 SessionIdLen\r
+ IN VOID *Tls,\r
+ IN UINT8 *SessionId,\r
+ IN UINT16 SessionIdLen\r
)\r
{\r
return CALL_BASECRYPTLIB (TlsSet.Services.SessionId, TlsSetSessionId, (Tls, SessionId, SessionIdLen), EFI_UNSUPPORTED);\r
EFI_STATUS\r
EFIAPI\r
CryptoServiceTlsSetCaCertificate (\r
- IN VOID *Tls,\r
- IN VOID *Data,\r
- IN UINTN DataSize\r
+ IN VOID *Tls,\r
+ IN VOID *Data,\r
+ IN UINTN DataSize\r
)\r
{\r
return CALL_BASECRYPTLIB (TlsSet.Services.CaCertificate, TlsSetCaCertificate, (Tls, Data, DataSize), EFI_UNSUPPORTED);\r
EFI_STATUS\r
EFIAPI\r
CryptoServiceTlsSetHostPublicCert (\r
- IN VOID *Tls,\r
- IN VOID *Data,\r
- IN UINTN DataSize\r
+ IN VOID *Tls,\r
+ IN VOID *Data,\r
+ IN UINTN DataSize\r
)\r
{\r
return CALL_BASECRYPTLIB (TlsSet.Services.HostPublicCert, TlsSetHostPublicCert, (Tls, Data, DataSize), EFI_UNSUPPORTED);\r
EFI_STATUS\r
EFIAPI\r
CryptoServiceTlsSetHostPrivateKey (\r
- IN VOID *Tls,\r
- IN VOID *Data,\r
- IN UINTN DataSize\r
+ IN VOID *Tls,\r
+ IN VOID *Data,\r
+ IN UINTN DataSize\r
)\r
{\r
return CALL_BASECRYPTLIB (TlsSet.Services.HostPrivateKey, TlsSetHostPrivateKey, (Tls, Data, DataSize), EFI_UNSUPPORTED);\r
EFI_STATUS\r
EFIAPI\r
CryptoServiceTlsSetCertRevocationList (\r
- IN VOID *Data,\r
- IN UINTN DataSize\r
+ IN VOID *Data,\r
+ IN UINTN DataSize\r
)\r
{\r
return CALL_BASECRYPTLIB (TlsSet.Services.CertRevocationList, TlsSetCertRevocationList, (Data, DataSize), EFI_UNSUPPORTED);\r
UINT16\r
EFIAPI\r
CryptoServiceTlsGetVersion (\r
- IN VOID *Tls\r
+ IN VOID *Tls\r
)\r
{\r
return CALL_BASECRYPTLIB (TlsGet.Services.Version, TlsGetVersion, (Tls), 0);\r
UINT8\r
EFIAPI\r
CryptoServiceTlsGetConnectionEnd (\r
- IN VOID *Tls\r
+ IN VOID *Tls\r
)\r
{\r
return CALL_BASECRYPTLIB (TlsGet.Services.ConnectionEnd, TlsGetConnectionEnd, (Tls), 0);\r
EFI_STATUS\r
EFIAPI\r
CryptoServiceTlsGetCurrentCipher (\r
- IN VOID *Tls,\r
- IN OUT UINT16 *CipherId\r
+ IN VOID *Tls,\r
+ IN OUT UINT16 *CipherId\r
)\r
{\r
return CALL_BASECRYPTLIB (TlsGet.Services.CurrentCipher, TlsGetCurrentCipher, (Tls, CipherId), EFI_UNSUPPORTED);\r
EFI_STATUS\r
EFIAPI\r
CryptoServiceTlsGetCurrentCompressionId (\r
- IN VOID *Tls,\r
- IN OUT UINT8 *CompressionId\r
+ IN VOID *Tls,\r
+ IN OUT UINT8 *CompressionId\r
)\r
{\r
return CALL_BASECRYPTLIB (TlsGet.Services.CurrentCompressionId, TlsGetCurrentCompressionId, (Tls, CompressionId), EFI_UNSUPPORTED);\r
UINT32\r
EFIAPI\r
CryptoServiceTlsGetVerify (\r
- IN VOID *Tls\r
+ IN VOID *Tls\r
)\r
{\r
return CALL_BASECRYPTLIB (TlsGet.Services.Verify, TlsGetVerify, (Tls), 0);\r
EFI_STATUS\r
EFIAPI\r
CryptoServiceTlsGetSessionId (\r
- IN VOID *Tls,\r
- IN OUT UINT8 *SessionId,\r
- IN OUT UINT16 *SessionIdLen\r
+ IN VOID *Tls,\r
+ IN OUT UINT8 *SessionId,\r
+ IN OUT UINT16 *SessionIdLen\r
)\r
{\r
return CALL_BASECRYPTLIB (TlsGet.Services.SessionId, TlsGetSessionId, (Tls, SessionId, SessionIdLen), EFI_UNSUPPORTED);\r
VOID\r
EFIAPI\r
CryptoServiceTlsGetClientRandom (\r
- IN VOID *Tls,\r
- IN OUT UINT8 *ClientRandom\r
+ IN VOID *Tls,\r
+ IN OUT UINT8 *ClientRandom\r
)\r
{\r
CALL_VOID_BASECRYPTLIB (TlsGet.Services.ClientRandom, TlsGetClientRandom, (Tls, ClientRandom));\r
VOID\r
EFIAPI\r
CryptoServiceTlsGetServerRandom (\r
- IN VOID *Tls,\r
- IN OUT UINT8 *ServerRandom\r
+ IN VOID *Tls,\r
+ IN OUT UINT8 *ServerRandom\r
)\r
{\r
CALL_VOID_BASECRYPTLIB (TlsGet.Services.ServerRandom, TlsGetServerRandom, (Tls, ServerRandom));\r
EFI_STATUS\r
EFIAPI\r
CryptoServiceTlsGetKeyMaterial (\r
- IN VOID *Tls,\r
- IN OUT UINT8 *KeyMaterial\r
+ IN VOID *Tls,\r
+ IN OUT UINT8 *KeyMaterial\r
)\r
{\r
return CALL_BASECRYPTLIB (TlsGet.Services.KeyMaterial, TlsGetKeyMaterial, (Tls, KeyMaterial), EFI_UNSUPPORTED);\r
EFI_STATUS\r
EFIAPI\r
CryptoServiceTlsGetCaCertificate (\r
- IN VOID *Tls,\r
- OUT VOID *Data,\r
- IN OUT UINTN *DataSize\r
+ IN VOID *Tls,\r
+ OUT VOID *Data,\r
+ IN OUT UINTN *DataSize\r
)\r
{\r
return CALL_BASECRYPTLIB (TlsGet.Services.CaCertificate, TlsGetCaCertificate, (Tls, Data, DataSize), EFI_UNSUPPORTED);\r
EFI_STATUS\r
EFIAPI\r
CryptoServiceTlsGetHostPublicCert (\r
- IN VOID *Tls,\r
- OUT VOID *Data,\r
- IN OUT UINTN *DataSize\r
+ IN VOID *Tls,\r
+ OUT VOID *Data,\r
+ IN OUT UINTN *DataSize\r
)\r
{\r
return CALL_BASECRYPTLIB (TlsGet.Services.HostPublicCert, TlsGetHostPublicCert, (Tls, Data, DataSize), EFI_UNSUPPORTED);\r
EFI_STATUS\r
EFIAPI\r
CryptoServiceTlsGetHostPrivateKey (\r
- IN VOID *Tls,\r
- OUT VOID *Data,\r
- IN OUT UINTN *DataSize\r
+ IN VOID *Tls,\r
+ OUT VOID *Data,\r
+ IN OUT UINTN *DataSize\r
)\r
{\r
return CALL_BASECRYPTLIB (TlsGet.Services.HostPrivateKey, TlsGetHostPrivateKey, (Tls, Data, DataSize), EFI_UNSUPPORTED);\r
EFI_STATUS\r
EFIAPI\r
CryptoServiceTlsGetCertRevocationList (\r
- OUT VOID *Data,\r
- IN OUT UINTN *DataSize\r
+ OUT VOID *Data,\r
+ IN OUT UINTN *DataSize\r
)\r
{\r
return CALL_BASECRYPTLIB (TlsGet.Services.CertRevocationList, TlsGetCertRevocationList, (Data, DataSize), EFI_UNSUPPORTED);\r
}\r
\r
-const EDKII_CRYPTO_PROTOCOL mEdkiiCrypto = {\r
+const EDKII_CRYPTO_PROTOCOL mEdkiiCrypto = {\r
/// Version\r
CryptoServiceGetCryptoVersion,\r
/// HMAC MD5 - deprecated and unsupported\r
DeprecatedCryptoServiceMd4Update,\r
DeprecatedCryptoServiceMd4Final,\r
DeprecatedCryptoServiceMd4HashAll,\r
-#ifndef ENABLE_MD5_DEPRECATED_INTERFACES\r
+ #ifndef ENABLE_MD5_DEPRECATED_INTERFACES\r
/// Md5 - deprecated and unsupported\r
DeprecatedCryptoServiceMd5GetContextSize,\r
DeprecatedCryptoServiceMd5Init,\r
DeprecatedCryptoServiceMd5Update,\r
DeprecatedCryptoServiceMd5Final,\r
DeprecatedCryptoServiceMd5HashAll,\r
-#else\r
+ #else\r
/// Md5\r
CryptoServiceMd5GetContextSize,\r
CryptoServiceMd5Init,\r
CryptoServiceMd5Update,\r
CryptoServiceMd5Final,\r
CryptoServiceMd5HashAll,\r
-#endif\r
+ #endif\r
/// Pkcs\r
CryptoServicePkcs1v2Encrypt,\r
CryptoServicePkcs5HashPassword,\r
CryptoServiceRsaPkcs1Verify,\r
CryptoServiceRsaGetPrivateKeyFromPem,\r
CryptoServiceRsaGetPublicKeyFromX509,\r
-#ifdef DISABLE_SHA1_DEPRECATED_INTERFACES\r
+ #ifdef DISABLE_SHA1_DEPRECATED_INTERFACES\r
/// Sha1 - deprecated and unsupported\r
DeprecatedCryptoServiceSha1GetContextSize,\r
DeprecatedCryptoServiceSha1Init,\r
DeprecatedCryptoServiceSha1Update,\r
DeprecatedCryptoServiceSha1Final,\r
DeprecatedCryptoServiceSha1HashAll,\r
-#else\r
+ #else\r
/// Sha1\r
CryptoServiceSha1GetContextSize,\r
CryptoServiceSha1Init,\r
CryptoServiceSha1Update,\r
CryptoServiceSha1Final,\r
CryptoServiceSha1HashAll,\r
-#endif\r
+ #endif\r
/// Sha256\r
CryptoServiceSha256GetContextSize,\r
CryptoServiceSha256Init,\r
IN EFI_SYSTEM_TABLE *SystemTable\r
)\r
{\r
- return gBS->InstallMultipleProtocolInterfaces(\r
+ return gBS->InstallMultipleProtocolInterfaces (\r
&ImageHandle,\r
&gEdkiiCryptoProtocolGuid,\r
- (EDKII_CRYPTO_PROTOCOL *) &mEdkiiCrypto,\r
+ (EDKII_CRYPTO_PROTOCOL *)&mEdkiiCrypto,\r
NULL\r
);\r
}\r
CONST EFI_PEI_PPI_DESCRIPTOR mEdkiiCryptoPpiList = {\r
(EFI_PEI_PPI_DESCRIPTOR_PPI | EFI_PEI_PPI_DESCRIPTOR_TERMINATE_LIST),\r
&gEdkiiCryptoPpiGuid,\r
- (EDKII_CRYPTO_PPI *) &mEdkiiCrypto\r
+ (EDKII_CRYPTO_PPI *)&mEdkiiCrypto\r
};\r
\r
/**\r
// always shadow this module in memory in Post-Mem.\r
//\r
Status = PeiServicesLocatePpi (\r
- &gEfiPeiMemoryDiscoveredPpiGuid,\r
- 0,\r
- NULL,\r
- (VOID **)&MemoryDiscoveredPpi\r
- );\r
+ &gEfiPeiMemoryDiscoveredPpiGuid,\r
+ 0,\r
+ NULL,\r
+ (VOID **)&MemoryDiscoveredPpi\r
+ );\r
if (Status == EFI_NOT_FOUND) {\r
//\r
// CryptoPei is dispatched before gEfiPeiMemoryDiscoveredPpiGuid\r
//\r
// CryptoPei was also dispatched before gEfiPeiMemoryDiscoveredPpiGuid\r
//\r
- DEBUG((DEBUG_INFO, "CryptoPeiEntry: ReInstall Post-Memmory Crypto PPI\n"));\r
+ DEBUG ((DEBUG_INFO, "CryptoPeiEntry: ReInstall Post-Memmory Crypto PPI\n"));\r
Status = PeiServicesReInstallPpi (\r
EdkiiCryptoPpiDescriptor,\r
&mEdkiiCryptoPpiList\r
&Handle,\r
&gEdkiiSmmCryptoProtocolGuid,\r
EFI_NATIVE_INTERFACE,\r
- (EDKII_CRYPTO_PROTOCOL *) &mEdkiiCrypto\r
+ (EDKII_CRYPTO_PROTOCOL *)&mEdkiiCrypto\r
);\r
}\r
///\r
/// MD5 digest size in bytes\r
///\r
-#define MD5_DIGEST_SIZE 16\r
+#define MD5_DIGEST_SIZE 16\r
\r
///\r
/// SHA-1 digest size in bytes.\r
///\r
-#define SHA1_DIGEST_SIZE 20\r
+#define SHA1_DIGEST_SIZE 20\r
\r
///\r
/// SHA-256 digest size in bytes\r
///\r
/// SM3 digest size in bytes\r
///\r
-#define SM3_256_DIGEST_SIZE 32\r
+#define SM3_256_DIGEST_SIZE 32\r
\r
///\r
/// TDES block size in bytes\r
///\r
-#define TDES_BLOCK_SIZE 8\r
+#define TDES_BLOCK_SIZE 8\r
\r
///\r
/// AES block size in bytes\r
///\r
-#define AES_BLOCK_SIZE 16\r
+#define AES_BLOCK_SIZE 16\r
\r
///\r
/// RSA Key Tags Definition used in RsaSetKey() function for key component identification.\r
RsaKeyQInv ///< The CRT coefficient (== 1/q mod p)\r
} RSA_KEY_TAG;\r
\r
-//=====================================================================================\r
+// =====================================================================================\r
// One-Way Cryptographic Hash Primitives\r
-//=====================================================================================\r
+// =====================================================================================\r
\r
#ifdef ENABLE_MD5_DEPRECATED_INTERFACES\r
+\r
/**\r
Retrieves the size, in bytes, of the context buffer required for MD5 hash operations.\r
\r
IN UINTN DataSize,\r
OUT UINT8 *HashValue\r
);\r
+\r
#endif\r
\r
#ifndef DISABLE_SHA1_DEPRECATED_INTERFACES\r
+\r
/**\r
Retrieves the size, in bytes, of the context buffer required for SHA-1 hash operations.\r
\r
IN UINTN DataSize,\r
OUT UINT8 *HashValue\r
);\r
+\r
#endif\r
\r
/**\r
OUT UINT8 *HashValue\r
);\r
\r
-//=====================================================================================\r
+// =====================================================================================\r
// MAC (Message Authentication Code) Primitive\r
-//=====================================================================================\r
+// =====================================================================================\r
\r
/**\r
Allocates and initializes one HMAC_CTX context for subsequent HMAC-SHA256 use.\r
OUT UINT8 *HmacValue\r
);\r
\r
-//=====================================================================================\r
+// =====================================================================================\r
// Symmetric Cryptography Primitive\r
-//=====================================================================================\r
+// =====================================================================================\r
\r
/**\r
Retrieves the size, in bytes, of the context buffer required for AES operations.\r
OUT UINT8 *Output\r
);\r
\r
-//=====================================================================================\r
+// =====================================================================================\r
// Asymmetric Cryptography Primitive\r
-//=====================================================================================\r
+// =====================================================================================\r
\r
/**\r
Allocates and initializes one RSA context for subsequent use.\r
RETURN_STATUS\r
EFIAPI\r
X509GetOrganizationName (\r
- IN CONST UINT8 *Cert,\r
- IN UINTN CertSize,\r
- OUT CHAR8 *NameBuffer OPTIONAL,\r
- IN OUT UINTN *NameBufferSize\r
+ IN CONST UINT8 *Cert,\r
+ IN UINTN CertSize,\r
+ OUT CHAR8 *NameBuffer OPTIONAL,\r
+ IN OUT UINTN *NameBufferSize\r
);\r
\r
/**\r
} EFI_CERT_DATA;\r
\r
typedef struct {\r
- UINT8 CertNumber; // Number of X.509 certificate.\r
- //EFI_CERT_DATA CertArray[]; // An array of X.509 certificate.\r
+ UINT8 CertNumber; // Number of X.509 certificate.\r
+ // EFI_CERT_DATA CertArray[]; // An array of X.509 certificate.\r
} EFI_CERT_STACK;\r
\r
#pragma pack()\r
VOID\r
EFIAPI\r
Pkcs7FreeSigners (\r
- IN UINT8 *Certs\r
+ IN UINT8 *Certs\r
);\r
\r
/**\r
OUT EFI_TIME *SigningTime\r
);\r
\r
-//=====================================================================================\r
+// =====================================================================================\r
// DH Key Exchange Primitive\r
-//=====================================================================================\r
+// =====================================================================================\r
\r
/**\r
Allocates and Initializes one Diffie-Hellman Context for subsequent use.\r
IN OUT UINTN *KeySize\r
);\r
\r
-//=====================================================================================\r
+// =====================================================================================\r
// Pseudo-Random Generation Primitive\r
-//=====================================================================================\r
+// =====================================================================================\r
\r
/**\r
Sets up the seed value for the pseudorandom number generator.\r
IN UINTN Size\r
);\r
\r
-//=====================================================================================\r
+// =====================================================================================\r
// Key Derivation Function Primitive\r
-//=====================================================================================\r
+// =====================================================================================\r
\r
/**\r
Derive key data using HMAC-SHA256 based KDF.\r
#ifndef __HASH_API_LIB_H_\r
#define __HASH_API_LIB_H_\r
\r
-typedef VOID *HASH_API_CONTEXT;\r
+typedef VOID *HASH_API_CONTEXT;\r
\r
/**\r
Retrieves the size, in bytes, of the context buffer required for hash operations.\r
VOID\r
EFIAPI\r
TlsCtxFree (\r
- IN VOID *TlsCtx\r
+ IN VOID *TlsCtx\r
);\r
\r
/**\r
VOID *\r
EFIAPI\r
TlsCtxNew (\r
- IN UINT8 MajorVer,\r
- IN UINT8 MinorVer\r
+ IN UINT8 MajorVer,\r
+ IN UINT8 MinorVer\r
);\r
\r
/**\r
VOID\r
EFIAPI\r
TlsFree (\r
- IN VOID *Tls\r
+ IN VOID *Tls\r
);\r
\r
/**\r
VOID *\r
EFIAPI\r
TlsNew (\r
- IN VOID *TlsCtx\r
+ IN VOID *TlsCtx\r
);\r
\r
/**\r
BOOLEAN\r
EFIAPI\r
TlsInHandshake (\r
- IN VOID *Tls\r
+ IN VOID *Tls\r
);\r
\r
/**\r
EFI_STATUS\r
EFIAPI\r
TlsDoHandshake (\r
- IN VOID *Tls,\r
- IN UINT8 *BufferIn OPTIONAL,\r
- IN UINTN BufferInSize OPTIONAL,\r
- OUT UINT8 *BufferOut OPTIONAL,\r
- IN OUT UINTN *BufferOutSize\r
+ IN VOID *Tls,\r
+ IN UINT8 *BufferIn OPTIONAL,\r
+ IN UINTN BufferInSize OPTIONAL,\r
+ OUT UINT8 *BufferOut OPTIONAL,\r
+ IN OUT UINTN *BufferOutSize\r
);\r
\r
/**\r
EFI_STATUS\r
EFIAPI\r
TlsHandleAlert (\r
- IN VOID *Tls,\r
- IN UINT8 *BufferIn OPTIONAL,\r
- IN UINTN BufferInSize OPTIONAL,\r
- OUT UINT8 *BufferOut OPTIONAL,\r
- IN OUT UINTN *BufferOutSize\r
+ IN VOID *Tls,\r
+ IN UINT8 *BufferIn OPTIONAL,\r
+ IN UINTN BufferInSize OPTIONAL,\r
+ OUT UINT8 *BufferOut OPTIONAL,\r
+ IN OUT UINTN *BufferOutSize\r
);\r
\r
/**\r
EFI_STATUS\r
EFIAPI\r
TlsCloseNotify (\r
- IN VOID *Tls,\r
- IN OUT UINT8 *Buffer,\r
- IN OUT UINTN *BufferSize\r
+ IN VOID *Tls,\r
+ IN OUT UINT8 *Buffer,\r
+ IN OUT UINTN *BufferSize\r
);\r
\r
/**\r
INTN\r
EFIAPI\r
TlsCtrlTrafficOut (\r
- IN VOID *Tls,\r
- IN OUT VOID *Buffer,\r
- IN UINTN BufferSize\r
+ IN VOID *Tls,\r
+ IN OUT VOID *Buffer,\r
+ IN UINTN BufferSize\r
);\r
\r
/**\r
INTN\r
EFIAPI\r
TlsCtrlTrafficIn (\r
- IN VOID *Tls,\r
- IN VOID *Buffer,\r
- IN UINTN BufferSize\r
+ IN VOID *Tls,\r
+ IN VOID *Buffer,\r
+ IN UINTN BufferSize\r
);\r
\r
/**\r
INTN\r
EFIAPI\r
TlsRead (\r
- IN VOID *Tls,\r
- IN OUT VOID *Buffer,\r
- IN UINTN BufferSize\r
+ IN VOID *Tls,\r
+ IN OUT VOID *Buffer,\r
+ IN UINTN BufferSize\r
);\r
\r
/**\r
INTN\r
EFIAPI\r
TlsWrite (\r
- IN VOID *Tls,\r
- IN VOID *Buffer,\r
- IN UINTN BufferSize\r
+ IN VOID *Tls,\r
+ IN VOID *Buffer,\r
+ IN UINTN BufferSize\r
);\r
\r
/**\r
EFI_STATUS\r
EFIAPI\r
TlsSetVersion (\r
- IN VOID *Tls,\r
- IN UINT8 MajorVer,\r
- IN UINT8 MinorVer\r
+ IN VOID *Tls,\r
+ IN UINT8 MajorVer,\r
+ IN UINT8 MinorVer\r
);\r
\r
/**\r
EFI_STATUS\r
EFIAPI\r
TlsSetConnectionEnd (\r
- IN VOID *Tls,\r
- IN BOOLEAN IsServer\r
+ IN VOID *Tls,\r
+ IN BOOLEAN IsServer\r
);\r
\r
/**\r
EFI_STATUS\r
EFIAPI\r
TlsSetCipherList (\r
- IN VOID *Tls,\r
- IN UINT16 *CipherId,\r
- IN UINTN CipherNum\r
+ IN VOID *Tls,\r
+ IN UINT16 *CipherId,\r
+ IN UINTN CipherNum\r
);\r
\r
/**\r
EFI_STATUS\r
EFIAPI\r
TlsSetCompressionMethod (\r
- IN UINT8 CompMethod\r
+ IN UINT8 CompMethod\r
);\r
\r
/**\r
VOID\r
EFIAPI\r
TlsSetVerify (\r
- IN VOID *Tls,\r
- IN UINT32 VerifyMode\r
+ IN VOID *Tls,\r
+ IN UINT32 VerifyMode\r
);\r
\r
/**\r
EFI_STATUS\r
EFIAPI\r
TlsSetVerifyHost (\r
- IN VOID *Tls,\r
- IN UINT32 Flags,\r
- IN CHAR8 *HostName\r
+ IN VOID *Tls,\r
+ IN UINT32 Flags,\r
+ IN CHAR8 *HostName\r
);\r
\r
/**\r
EFI_STATUS\r
EFIAPI\r
TlsSetSessionId (\r
- IN VOID *Tls,\r
- IN UINT8 *SessionId,\r
- IN UINT16 SessionIdLen\r
+ IN VOID *Tls,\r
+ IN UINT8 *SessionId,\r
+ IN UINT16 SessionIdLen\r
);\r
\r
/**\r
EFI_STATUS\r
EFIAPI\r
TlsSetCaCertificate (\r
- IN VOID *Tls,\r
- IN VOID *Data,\r
- IN UINTN DataSize\r
+ IN VOID *Tls,\r
+ IN VOID *Data,\r
+ IN UINTN DataSize\r
);\r
\r
/**\r
EFI_STATUS\r
EFIAPI\r
TlsSetHostPublicCert (\r
- IN VOID *Tls,\r
- IN VOID *Data,\r
- IN UINTN DataSize\r
+ IN VOID *Tls,\r
+ IN VOID *Data,\r
+ IN UINTN DataSize\r
);\r
\r
/**\r
EFI_STATUS\r
EFIAPI\r
TlsSetHostPrivateKey (\r
- IN VOID *Tls,\r
- IN VOID *Data,\r
- IN UINTN DataSize\r
+ IN VOID *Tls,\r
+ IN VOID *Data,\r
+ IN UINTN DataSize\r
);\r
\r
/**\r
EFI_STATUS\r
EFIAPI\r
TlsSetCertRevocationList (\r
- IN VOID *Data,\r
- IN UINTN DataSize\r
+ IN VOID *Data,\r
+ IN UINTN DataSize\r
);\r
\r
/**\r
UINT16\r
EFIAPI\r
TlsGetVersion (\r
- IN VOID *Tls\r
+ IN VOID *Tls\r
);\r
\r
/**\r
UINT8\r
EFIAPI\r
TlsGetConnectionEnd (\r
- IN VOID *Tls\r
+ IN VOID *Tls\r
);\r
\r
/**\r
EFI_STATUS\r
EFIAPI\r
TlsGetCurrentCipher (\r
- IN VOID *Tls,\r
- IN OUT UINT16 *CipherId\r
+ IN VOID *Tls,\r
+ IN OUT UINT16 *CipherId\r
);\r
\r
/**\r
EFI_STATUS\r
EFIAPI\r
TlsGetCurrentCompressionId (\r
- IN VOID *Tls,\r
- IN OUT UINT8 *CompressionId\r
+ IN VOID *Tls,\r
+ IN OUT UINT8 *CompressionId\r
);\r
\r
/**\r
UINT32\r
EFIAPI\r
TlsGetVerify (\r
- IN VOID *Tls\r
+ IN VOID *Tls\r
);\r
\r
/**\r
EFI_STATUS\r
EFIAPI\r
TlsGetSessionId (\r
- IN VOID *Tls,\r
- IN OUT UINT8 *SessionId,\r
- IN OUT UINT16 *SessionIdLen\r
+ IN VOID *Tls,\r
+ IN OUT UINT8 *SessionId,\r
+ IN OUT UINT16 *SessionIdLen\r
);\r
\r
/**\r
VOID\r
EFIAPI\r
TlsGetClientRandom (\r
- IN VOID *Tls,\r
- IN OUT UINT8 *ClientRandom\r
+ IN VOID *Tls,\r
+ IN OUT UINT8 *ClientRandom\r
);\r
\r
/**\r
VOID\r
EFIAPI\r
TlsGetServerRandom (\r
- IN VOID *Tls,\r
- IN OUT UINT8 *ServerRandom\r
+ IN VOID *Tls,\r
+ IN OUT UINT8 *ServerRandom\r
);\r
\r
/**\r
EFI_STATUS\r
EFIAPI\r
TlsGetKeyMaterial (\r
- IN VOID *Tls,\r
- IN OUT UINT8 *KeyMaterial\r
+ IN VOID *Tls,\r
+ IN OUT UINT8 *KeyMaterial\r
);\r
\r
/**\r
EFI_STATUS\r
EFIAPI\r
TlsGetCaCertificate (\r
- IN VOID *Tls,\r
- OUT VOID *Data,\r
- IN OUT UINTN *DataSize\r
+ IN VOID *Tls,\r
+ OUT VOID *Data,\r
+ IN OUT UINTN *DataSize\r
);\r
\r
/**\r
EFI_STATUS\r
EFIAPI\r
TlsGetHostPublicCert (\r
- IN VOID *Tls,\r
- OUT VOID *Data,\r
- IN OUT UINTN *DataSize\r
+ IN VOID *Tls,\r
+ OUT VOID *Data,\r
+ IN OUT UINTN *DataSize\r
);\r
\r
/**\r
EFI_STATUS\r
EFIAPI\r
TlsGetHostPrivateKey (\r
- IN VOID *Tls,\r
- OUT VOID *Data,\r
- IN OUT UINTN *DataSize\r
+ IN VOID *Tls,\r
+ OUT VOID *Data,\r
+ IN OUT UINTN *DataSize\r
);\r
\r
/**\r
EFI_STATUS\r
EFIAPI\r
TlsGetCertRevocationList (\r
- OUT VOID *Data,\r
- IN OUT UINTN *DataSize\r
+ OUT VOID *Data,\r
+ IN OUT UINTN *DataSize\r
);\r
\r
#endif // __TLS_LIB_H__\r
typedef struct {\r
union {\r
struct {\r
- UINT8 New:1;\r
- UINT8 Free:1;\r
- UINT8 SetKey:1;\r
- UINT8 Duplicate:1;\r
- UINT8 Update:1;\r
- UINT8 Final:1;\r
+ UINT8 New : 1;\r
+ UINT8 Free : 1;\r
+ UINT8 SetKey : 1;\r
+ UINT8 Duplicate : 1;\r
+ UINT8 Update : 1;\r
+ UINT8 Final : 1;\r
} Services;\r
UINT32 Family;\r
} HmacMd5;\r
union {\r
struct {\r
- UINT8 New:1;\r
- UINT8 Free:1;\r
- UINT8 SetKey:1;\r
- UINT8 Duplicate:1;\r
- UINT8 Update:1;\r
- UINT8 Final:1;\r
+ UINT8 New : 1;\r
+ UINT8 Free : 1;\r
+ UINT8 SetKey : 1;\r
+ UINT8 Duplicate : 1;\r
+ UINT8 Update : 1;\r
+ UINT8 Final : 1;\r
} Services;\r
UINT32 Family;\r
} HmacSha1;\r
union {\r
struct {\r
- UINT8 New:1;\r
- UINT8 Free:1;\r
- UINT8 SetKey:1;\r
- UINT8 Duplicate:1;\r
- UINT8 Update:1;\r
- UINT8 Final:1;\r
+ UINT8 New : 1;\r
+ UINT8 Free : 1;\r
+ UINT8 SetKey : 1;\r
+ UINT8 Duplicate : 1;\r
+ UINT8 Update : 1;\r
+ UINT8 Final : 1;\r
} Services;\r
UINT32 Family;\r
} HmacSha256;\r
union {\r
struct {\r
- UINT8 GetContextSize:1;\r
- UINT8 Init:1;\r
- UINT8 Duplicate:1;\r
- UINT8 Update:1;\r
- UINT8 Final:1;\r
- UINT8 HashAll:1;\r
+ UINT8 GetContextSize : 1;\r
+ UINT8 Init : 1;\r
+ UINT8 Duplicate : 1;\r
+ UINT8 Update : 1;\r
+ UINT8 Final : 1;\r
+ UINT8 HashAll : 1;\r
} Services;\r
UINT32 Family;\r
} Md4;\r
union {\r
struct {\r
- UINT8 GetContextSize:1;\r
- UINT8 Init:1;\r
- UINT8 Duplicate:1;\r
- UINT8 Update:1;\r
- UINT8 Final:1;\r
- UINT8 HashAll:1;\r
+ UINT8 GetContextSize : 1;\r
+ UINT8 Init : 1;\r
+ UINT8 Duplicate : 1;\r
+ UINT8 Update : 1;\r
+ UINT8 Final : 1;\r
+ UINT8 HashAll : 1;\r
} Services;\r
UINT32 Family;\r
} Md5;\r
union {\r
struct {\r
- UINT8 Pkcs1v2Encrypt:1;\r
- UINT8 Pkcs5HashPassword:1;\r
- UINT8 Pkcs7Verify:1;\r
- UINT8 VerifyEKUsInPkcs7Signature:1;\r
- UINT8 Pkcs7GetSigners:1;\r
- UINT8 Pkcs7FreeSigners:1;\r
- UINT8 Pkcs7Sign:1;\r
- UINT8 Pkcs7GetAttachedContent:1;\r
- UINT8 Pkcs7GetCertificatesList:1;\r
- UINT8 AuthenticodeVerify:1;\r
- UINT8 ImageTimestampVerify:1;\r
+ UINT8 Pkcs1v2Encrypt : 1;\r
+ UINT8 Pkcs5HashPassword : 1;\r
+ UINT8 Pkcs7Verify : 1;\r
+ UINT8 VerifyEKUsInPkcs7Signature : 1;\r
+ UINT8 Pkcs7GetSigners : 1;\r
+ UINT8 Pkcs7FreeSigners : 1;\r
+ UINT8 Pkcs7Sign : 1;\r
+ UINT8 Pkcs7GetAttachedContent : 1;\r
+ UINT8 Pkcs7GetCertificatesList : 1;\r
+ UINT8 AuthenticodeVerify : 1;\r
+ UINT8 ImageTimestampVerify : 1;\r
} Services;\r
UINT32 Family;\r
} Pkcs;\r
union {\r
struct {\r
- UINT8 New:1;\r
- UINT8 Free:1;\r
- UINT8 GenerateParameter:1;\r
- UINT8 SetParameter:1;\r
- UINT8 GenerateKey:1;\r
- UINT8 ComputeKey:1;\r
+ UINT8 New : 1;\r
+ UINT8 Free : 1;\r
+ UINT8 GenerateParameter : 1;\r
+ UINT8 SetParameter : 1;\r
+ UINT8 GenerateKey : 1;\r
+ UINT8 ComputeKey : 1;\r
} Services;\r
UINT32 Family;\r
} Dh;\r
union {\r
struct {\r
- UINT8 Seed:1;\r
- UINT8 Bytes:1;\r
+ UINT8 Seed : 1;\r
+ UINT8 Bytes : 1;\r
} Services;\r
UINT32 Family;\r
} Random;\r
union {\r
struct {\r
- UINT8 VerifyPkcs1:1;\r
- UINT8 New:1;\r
- UINT8 Free:1;\r
- UINT8 SetKey:1;\r
- UINT8 GetKey:1;\r
- UINT8 GenerateKey:1;\r
- UINT8 CheckKey:1;\r
- UINT8 Pkcs1Sign:1;\r
- UINT8 Pkcs1Verify:1;\r
- UINT8 GetPrivateKeyFromPem:1;\r
- UINT8 GetPublicKeyFromX509:1;\r
+ UINT8 VerifyPkcs1 : 1;\r
+ UINT8 New : 1;\r
+ UINT8 Free : 1;\r
+ UINT8 SetKey : 1;\r
+ UINT8 GetKey : 1;\r
+ UINT8 GenerateKey : 1;\r
+ UINT8 CheckKey : 1;\r
+ UINT8 Pkcs1Sign : 1;\r
+ UINT8 Pkcs1Verify : 1;\r
+ UINT8 GetPrivateKeyFromPem : 1;\r
+ UINT8 GetPublicKeyFromX509 : 1;\r
} Services;\r
UINT32 Family;\r
} Rsa;\r
union {\r
struct {\r
- UINT8 GetContextSize:1;\r
- UINT8 Init:1;\r
- UINT8 Duplicate:1;\r
- UINT8 Update:1;\r
- UINT8 Final:1;\r
- UINT8 HashAll:1;\r
+ UINT8 GetContextSize : 1;\r
+ UINT8 Init : 1;\r
+ UINT8 Duplicate : 1;\r
+ UINT8 Update : 1;\r
+ UINT8 Final : 1;\r
+ UINT8 HashAll : 1;\r
} Services;\r
UINT32 Family;\r
} Sha1;\r
union {\r
struct {\r
- UINT8 GetContextSize:1;\r
- UINT8 Init:1;\r
- UINT8 Duplicate:1;\r
- UINT8 Update:1;\r
- UINT8 Final:1;\r
- UINT8 HashAll:1;\r
+ UINT8 GetContextSize : 1;\r
+ UINT8 Init : 1;\r
+ UINT8 Duplicate : 1;\r
+ UINT8 Update : 1;\r
+ UINT8 Final : 1;\r
+ UINT8 HashAll : 1;\r
} Services;\r
UINT32 Family;\r
} Sha256;\r
union {\r
struct {\r
- UINT8 GetContextSize:1;\r
- UINT8 Init:1;\r
- UINT8 Duplicate:1;\r
- UINT8 Update:1;\r
- UINT8 Final:1;\r
- UINT8 HashAll:1;\r
+ UINT8 GetContextSize : 1;\r
+ UINT8 Init : 1;\r
+ UINT8 Duplicate : 1;\r
+ UINT8 Update : 1;\r
+ UINT8 Final : 1;\r
+ UINT8 HashAll : 1;\r
} Services;\r
UINT32 Family;\r
} Sha384;\r
union {\r
struct {\r
- UINT8 GetContextSize:1;\r
- UINT8 Init:1;\r
- UINT8 Duplicate:1;\r
- UINT8 Update:1;\r
- UINT8 Final:1;\r
- UINT8 HashAll:1;\r
+ UINT8 GetContextSize : 1;\r
+ UINT8 Init : 1;\r
+ UINT8 Duplicate : 1;\r
+ UINT8 Update : 1;\r
+ UINT8 Final : 1;\r
+ UINT8 HashAll : 1;\r
} Services;\r
UINT32 Family;\r
} Sha512;\r
union {\r
struct {\r
- UINT8 GetSubjectName:1;\r
- UINT8 GetCommonName:1;\r
- UINT8 GetOrganizationName:1;\r
- UINT8 VerifyCert:1;\r
- UINT8 ConstructCertificate:1;\r
- UINT8 ConstructCertificateStack:1;\r
- UINT8 ConstructCertificateStackV:1;\r
- UINT8 Free:1;\r
- UINT8 StackFree:1;\r
- UINT8 GetTBSCert:1;\r
+ UINT8 GetSubjectName : 1;\r
+ UINT8 GetCommonName : 1;\r
+ UINT8 GetOrganizationName : 1;\r
+ UINT8 VerifyCert : 1;\r
+ UINT8 ConstructCertificate : 1;\r
+ UINT8 ConstructCertificateStack : 1;\r
+ UINT8 ConstructCertificateStackV : 1;\r
+ UINT8 Free : 1;\r
+ UINT8 StackFree : 1;\r
+ UINT8 GetTBSCert : 1;\r
} Services;\r
UINT32 Family;\r
} X509;\r
union {\r
struct {\r
- UINT8 GetContextSize:1;\r
- UINT8 Init:1;\r
- UINT8 EcbEncrypt:1;\r
- UINT8 EcbDecrypt:1;\r
- UINT8 CbcEncrypt:1;\r
- UINT8 CbcDecrypt:1;\r
+ UINT8 GetContextSize : 1;\r
+ UINT8 Init : 1;\r
+ UINT8 EcbEncrypt : 1;\r
+ UINT8 EcbDecrypt : 1;\r
+ UINT8 CbcEncrypt : 1;\r
+ UINT8 CbcDecrypt : 1;\r
} Services;\r
UINT32 Family;\r
} Tdes;\r
union {\r
struct {\r
- UINT8 GetContextSize:1;\r
- UINT8 Init:1;\r
- UINT8 EcbEncrypt:1;\r
- UINT8 EcbDecrypt:1;\r
- UINT8 CbcEncrypt:1;\r
- UINT8 CbcDecrypt:1;\r
+ UINT8 GetContextSize : 1;\r
+ UINT8 Init : 1;\r
+ UINT8 EcbEncrypt : 1;\r
+ UINT8 EcbDecrypt : 1;\r
+ UINT8 CbcEncrypt : 1;\r
+ UINT8 CbcDecrypt : 1;\r
} Services;\r
UINT32 Family;\r
} Aes;\r
union {\r
struct {\r
- UINT8 GetContextSize:1;\r
- UINT8 Init:1;\r
- UINT8 Encrypt:1;\r
- UINT8 Decrypt:1;\r
- UINT8 Reset:1;\r
+ UINT8 GetContextSize : 1;\r
+ UINT8 Init : 1;\r
+ UINT8 Encrypt : 1;\r
+ UINT8 Decrypt : 1;\r
+ UINT8 Reset : 1;\r
} Services;\r
UINT32 Family;\r
} Arc4;\r
union {\r
struct {\r
- UINT8 GetContextSize:1;\r
- UINT8 Init:1;\r
- UINT8 Duplicate:1;\r
- UINT8 Update:1;\r
- UINT8 Final:1;\r
- UINT8 HashAll:1;\r
+ UINT8 GetContextSize : 1;\r
+ UINT8 Init : 1;\r
+ UINT8 Duplicate : 1;\r
+ UINT8 Update : 1;\r
+ UINT8 Final : 1;\r
+ UINT8 HashAll : 1;\r
} Services;\r
UINT32 Family;\r
} Sm3;\r
union {\r
struct {\r
- UINT8 Sha256ExtractAndExpand;\r
+ UINT8 Sha256ExtractAndExpand;\r
} Services;\r
UINT32 Family;\r
} Hkdf;\r
union {\r
struct {\r
- UINT8 Initialize:1;\r
- UINT8 CtxFree:1;\r
- UINT8 CtxNew:1;\r
- UINT8 Free:1;\r
- UINT8 New:1;\r
- UINT8 InHandshake:1;\r
- UINT8 DoHandshake:1;\r
- UINT8 HandleAlert:1;\r
- UINT8 CloseNotify:1;\r
- UINT8 CtrlTrafficOut:1;\r
- UINT8 CtrlTrafficIn:1;\r
- UINT8 Read:1;\r
- UINT8 Write:1;\r
+ UINT8 Initialize : 1;\r
+ UINT8 CtxFree : 1;\r
+ UINT8 CtxNew : 1;\r
+ UINT8 Free : 1;\r
+ UINT8 New : 1;\r
+ UINT8 InHandshake : 1;\r
+ UINT8 DoHandshake : 1;\r
+ UINT8 HandleAlert : 1;\r
+ UINT8 CloseNotify : 1;\r
+ UINT8 CtrlTrafficOut : 1;\r
+ UINT8 CtrlTrafficIn : 1;\r
+ UINT8 Read : 1;\r
+ UINT8 Write : 1;\r
} Services;\r
UINT32 Family;\r
} Tls;\r
union {\r
struct {\r
- UINT8 Version:1;\r
- UINT8 ConnectionEnd:1;\r
- UINT8 CipherList:1;\r
- UINT8 CompressionMethod:1;\r
- UINT8 Verify:1;\r
- UINT8 VerifyHost:1;\r
- UINT8 SessionId:1;\r
- UINT8 CaCertificate:1;\r
- UINT8 HostPublicCert:1;\r
- UINT8 HostPrivateKey:1;\r
- UINT8 CertRevocationList:1;\r
+ UINT8 Version : 1;\r
+ UINT8 ConnectionEnd : 1;\r
+ UINT8 CipherList : 1;\r
+ UINT8 CompressionMethod : 1;\r
+ UINT8 Verify : 1;\r
+ UINT8 VerifyHost : 1;\r
+ UINT8 SessionId : 1;\r
+ UINT8 CaCertificate : 1;\r
+ UINT8 HostPublicCert : 1;\r
+ UINT8 HostPrivateKey : 1;\r
+ UINT8 CertRevocationList : 1;\r
} Services;\r
UINT32 Family;\r
} TlsSet;\r
union {\r
struct {\r
- UINT8 Version:1;\r
- UINT8 ConnectionEnd:1;\r
- UINT8 CurrentCipher:1;\r
- UINT8 CurrentCompressionId:1;\r
- UINT8 Verify:1;\r
- UINT8 SessionId:1;\r
- UINT8 ClientRandom:1;\r
- UINT8 ServerRandom:1;\r
- UINT8 KeyMaterial:1;\r
- UINT8 CaCertificate:1;\r
- UINT8 HostPublicCert:1;\r
- UINT8 HostPrivateKey:1;\r
- UINT8 CertRevocationList:1;\r
+ UINT8 Version : 1;\r
+ UINT8 ConnectionEnd : 1;\r
+ UINT8 CurrentCipher : 1;\r
+ UINT8 CurrentCompressionId : 1;\r
+ UINT8 Verify : 1;\r
+ UINT8 SessionId : 1;\r
+ UINT8 ClientRandom : 1;\r
+ UINT8 ServerRandom : 1;\r
+ UINT8 KeyMaterial : 1;\r
+ UINT8 CaCertificate : 1;\r
+ UINT8 HostPublicCert : 1;\r
+ UINT8 HostPrivateKey : 1;\r
+ UINT8 CertRevocationList : 1;\r
} Services;\r
UINT32 Family;\r
} TlsGet;\r
// AES uses different key contexts for encryption and decryption, so here memory\r
// for 2 copies of AES_KEY is allocated.\r
//\r
- return (UINTN) (2 * sizeof (AES_KEY));\r
+ return (UINTN)(2 * sizeof (AES_KEY));\r
}\r
\r
/**\r
//\r
// Check input parameters.\r
//\r
- if (AesContext == NULL || Key == NULL || (KeyLength != 128 && KeyLength != 192 && KeyLength != 256)) {\r
+ if ((AesContext == NULL) || (Key == NULL) || ((KeyLength != 128) && (KeyLength != 192) && (KeyLength != 256))) {\r
return FALSE;\r
}\r
\r
//\r
// Initialize AES encryption & decryption key schedule.\r
//\r
- AesKey = (AES_KEY *) AesContext;\r
- if (AES_set_encrypt_key (Key, (UINT32) KeyLength, AesKey) != 0) {\r
+ AesKey = (AES_KEY *)AesContext;\r
+ if (AES_set_encrypt_key (Key, (UINT32)KeyLength, AesKey) != 0) {\r
return FALSE;\r
}\r
- if (AES_set_decrypt_key (Key, (UINT32) KeyLength, AesKey + 1) != 0) {\r
+\r
+ if (AES_set_decrypt_key (Key, (UINT32)KeyLength, AesKey + 1) != 0) {\r
return FALSE;\r
}\r
+\r
return TRUE;\r
}\r
\r
//\r
// Check input parameters.\r
//\r
- if (AesContext == NULL || Input == NULL || (InputSize % AES_BLOCK_SIZE) != 0) {\r
+ if ((AesContext == NULL) || (Input == NULL) || ((InputSize % AES_BLOCK_SIZE) != 0)) {\r
return FALSE;\r
}\r
\r
- if (Ivec == NULL || Output == NULL || InputSize > INT_MAX) {\r
+ if ((Ivec == NULL) || (Output == NULL) || (InputSize > INT_MAX)) {\r
return FALSE;\r
}\r
\r
- AesKey = (AES_KEY *) AesContext;\r
+ AesKey = (AES_KEY *)AesContext;\r
CopyMem (IvecBuffer, Ivec, AES_BLOCK_SIZE);\r
\r
//\r
// Perform AES data encryption with CBC mode\r
//\r
- AES_cbc_encrypt (Input, Output, (UINT32) InputSize, AesKey, IvecBuffer, AES_ENCRYPT);\r
+ AES_cbc_encrypt (Input, Output, (UINT32)InputSize, AesKey, IvecBuffer, AES_ENCRYPT);\r
\r
return TRUE;\r
}\r
//\r
// Check input parameters.\r
//\r
- if (AesContext == NULL || Input == NULL || (InputSize % AES_BLOCK_SIZE) != 0) {\r
+ if ((AesContext == NULL) || (Input == NULL) || ((InputSize % AES_BLOCK_SIZE) != 0)) {\r
return FALSE;\r
}\r
\r
- if (Ivec == NULL || Output == NULL || InputSize > INT_MAX) {\r
+ if ((Ivec == NULL) || (Output == NULL) || (InputSize > INT_MAX)) {\r
return FALSE;\r
}\r
\r
- AesKey = (AES_KEY *) AesContext;\r
+ AesKey = (AES_KEY *)AesContext;\r
CopyMem (IvecBuffer, Ivec, AES_BLOCK_SIZE);\r
\r
//\r
// Perform AES data decryption with CBC mode\r
//\r
- AES_cbc_encrypt (Input, Output, (UINT32) InputSize, AesKey + 1, IvecBuffer, AES_DECRYPT);\r
+ AES_cbc_encrypt (Input, Output, (UINT32)InputSize, AesKey + 1, IvecBuffer, AES_DECRYPT);\r
\r
return TRUE;\r
}\r
#include <openssl/md5.h>\r
\r
#ifdef ENABLE_MD5_DEPRECATED_INTERFACES\r
+\r
/**\r
Retrieves the size, in bytes, of the context buffer required for MD5 hash operations.\r
\r
//\r
// Retrieves the OpenSSL MD5 Context Size\r
//\r
- return (UINTN) (sizeof (MD5_CTX));\r
+ return (UINTN)(sizeof (MD5_CTX));\r
}\r
\r
-\r
/**\r
Initializes user-supplied memory pointed by Md5Context as MD5 hash context for\r
subsequent use.\r
//\r
// OpenSSL MD5 Context Initialization\r
//\r
- return (BOOLEAN) (MD5_Init ((MD5_CTX *) Md5Context));\r
+ return (BOOLEAN)(MD5_Init ((MD5_CTX *)Md5Context));\r
}\r
\r
/**\r
//\r
// Check input parameters.\r
//\r
- if (Md5Context == NULL || NewMd5Context == NULL) {\r
+ if ((Md5Context == NULL) || (NewMd5Context == NULL)) {\r
return FALSE;\r
}\r
\r
//\r
// Check invalid parameters, in case that only DataLength was checked in OpenSSL\r
//\r
- if (Data == NULL && (DataSize != 0)) {\r
+ if ((Data == NULL) && (DataSize != 0)) {\r
return FALSE;\r
}\r
\r
//\r
// OpenSSL MD5 Hash Update\r
//\r
- return (BOOLEAN) (MD5_Update ((MD5_CTX *) Md5Context, Data, DataSize));\r
+ return (BOOLEAN)(MD5_Update ((MD5_CTX *)Md5Context, Data, DataSize));\r
}\r
\r
/**\r
//\r
// Check input parameters.\r
//\r
- if (Md5Context == NULL || HashValue == NULL) {\r
+ if ((Md5Context == NULL) || (HashValue == NULL)) {\r
return FALSE;\r
}\r
\r
//\r
// OpenSSL MD5 Hash Finalization\r
//\r
- return (BOOLEAN) (MD5_Final (HashValue, (MD5_CTX *) Md5Context));\r
+ return (BOOLEAN)(MD5_Final (HashValue, (MD5_CTX *)Md5Context));\r
}\r
\r
/**\r
if (HashValue == NULL) {\r
return FALSE;\r
}\r
- if (Data == NULL && (DataSize != 0)) {\r
+\r
+ if ((Data == NULL) && (DataSize != 0)) {\r
return FALSE;\r
}\r
\r
return TRUE;\r
}\r
}\r
+\r
#endif\r
#include <openssl/sha.h>\r
\r
#ifndef DISABLE_SHA1_DEPRECATED_INTERFACES\r
+\r
/**\r
Retrieves the size, in bytes, of the context buffer required for SHA-1 hash operations.\r
\r
//\r
// Retrieves OpenSSL SHA Context Size\r
//\r
- return (UINTN) (sizeof (SHA_CTX));\r
+ return (UINTN)(sizeof (SHA_CTX));\r
}\r
\r
/**\r
//\r
// OpenSSL SHA-1 Context Initialization\r
//\r
- return (BOOLEAN) (SHA1_Init ((SHA_CTX *) Sha1Context));\r
+ return (BOOLEAN)(SHA1_Init ((SHA_CTX *)Sha1Context));\r
}\r
\r
/**\r
//\r
// Check input parameters.\r
//\r
- if (Sha1Context == NULL || NewSha1Context == NULL) {\r
+ if ((Sha1Context == NULL) || (NewSha1Context == NULL)) {\r
return FALSE;\r
}\r
\r
//\r
// Check invalid parameters, in case that only DataLength was checked in OpenSSL\r
//\r
- if (Data == NULL && DataSize != 0) {\r
+ if ((Data == NULL) && (DataSize != 0)) {\r
return FALSE;\r
}\r
\r
//\r
// OpenSSL SHA-1 Hash Update\r
//\r
- return (BOOLEAN) (SHA1_Update ((SHA_CTX *) Sha1Context, Data, DataSize));\r
+ return (BOOLEAN)(SHA1_Update ((SHA_CTX *)Sha1Context, Data, DataSize));\r
}\r
\r
/**\r
//\r
// Check input parameters.\r
//\r
- if (Sha1Context == NULL || HashValue == NULL) {\r
+ if ((Sha1Context == NULL) || (HashValue == NULL)) {\r
return FALSE;\r
}\r
\r
//\r
// OpenSSL SHA-1 Hash Finalization\r
//\r
- return (BOOLEAN) (SHA1_Final (HashValue, (SHA_CTX *) Sha1Context));\r
+ return (BOOLEAN)(SHA1_Final (HashValue, (SHA_CTX *)Sha1Context));\r
}\r
\r
/**\r
if (HashValue == NULL) {\r
return FALSE;\r
}\r
- if (Data == NULL && DataSize != 0) {\r
+\r
+ if ((Data == NULL) && (DataSize != 0)) {\r
return FALSE;\r
}\r
\r
return TRUE;\r
}\r
}\r
+\r
#endif\r
//\r
// Retrieves OpenSSL SHA-256 Context Size\r
//\r
- return (UINTN) (sizeof (SHA256_CTX));\r
+ return (UINTN)(sizeof (SHA256_CTX));\r
}\r
\r
/**\r
//\r
// OpenSSL SHA-256 Context Initialization\r
//\r
- return (BOOLEAN) (SHA256_Init ((SHA256_CTX *) Sha256Context));\r
+ return (BOOLEAN)(SHA256_Init ((SHA256_CTX *)Sha256Context));\r
}\r
\r
/**\r
//\r
// Check input parameters.\r
//\r
- if (Sha256Context == NULL || NewSha256Context == NULL) {\r
+ if ((Sha256Context == NULL) || (NewSha256Context == NULL)) {\r
return FALSE;\r
}\r
\r
//\r
// Check invalid parameters, in case that only DataLength was checked in OpenSSL\r
//\r
- if (Data == NULL && DataSize != 0) {\r
+ if ((Data == NULL) && (DataSize != 0)) {\r
return FALSE;\r
}\r
\r
//\r
// OpenSSL SHA-256 Hash Update\r
//\r
- return (BOOLEAN) (SHA256_Update ((SHA256_CTX *) Sha256Context, Data, DataSize));\r
+ return (BOOLEAN)(SHA256_Update ((SHA256_CTX *)Sha256Context, Data, DataSize));\r
}\r
\r
/**\r
//\r
// Check input parameters.\r
//\r
- if (Sha256Context == NULL || HashValue == NULL) {\r
+ if ((Sha256Context == NULL) || (HashValue == NULL)) {\r
return FALSE;\r
}\r
\r
//\r
// OpenSSL SHA-256 Hash Finalization\r
//\r
- return (BOOLEAN) (SHA256_Final (HashValue, (SHA256_CTX *) Sha256Context));\r
+ return (BOOLEAN)(SHA256_Final (HashValue, (SHA256_CTX *)Sha256Context));\r
}\r
\r
/**\r
if (HashValue == NULL) {\r
return FALSE;\r
}\r
- if (Data == NULL && DataSize != 0) {\r
+\r
+ if ((Data == NULL) && (DataSize != 0)) {\r
return FALSE;\r
}\r
\r
//\r
// Retrieves OpenSSL SHA-384 Context Size\r
//\r
- return (UINTN) (sizeof (SHA512_CTX));\r
+ return (UINTN)(sizeof (SHA512_CTX));\r
}\r
\r
/**\r
//\r
// OpenSSL SHA-384 Context Initialization\r
//\r
- return (BOOLEAN) (SHA384_Init ((SHA512_CTX *) Sha384Context));\r
+ return (BOOLEAN)(SHA384_Init ((SHA512_CTX *)Sha384Context));\r
}\r
\r
/**\r
//\r
// Check input parameters.\r
//\r
- if (Sha384Context == NULL || NewSha384Context == NULL) {\r
+ if ((Sha384Context == NULL) || (NewSha384Context == NULL)) {\r
return FALSE;\r
}\r
\r
//\r
// Check invalid parameters, in case that only DataLength was checked in OpenSSL\r
//\r
- if (Data == NULL && DataSize != 0) {\r
+ if ((Data == NULL) && (DataSize != 0)) {\r
return FALSE;\r
}\r
\r
//\r
// OpenSSL SHA-384 Hash Update\r
//\r
- return (BOOLEAN) (SHA384_Update ((SHA512_CTX *) Sha384Context, Data, DataSize));\r
+ return (BOOLEAN)(SHA384_Update ((SHA512_CTX *)Sha384Context, Data, DataSize));\r
}\r
\r
/**\r
//\r
// Check input parameters.\r
//\r
- if (Sha384Context == NULL || HashValue == NULL) {\r
+ if ((Sha384Context == NULL) || (HashValue == NULL)) {\r
return FALSE;\r
}\r
\r
//\r
// OpenSSL SHA-384 Hash Finalization\r
//\r
- return (BOOLEAN) (SHA384_Final (HashValue, (SHA512_CTX *) Sha384Context));\r
+ return (BOOLEAN)(SHA384_Final (HashValue, (SHA512_CTX *)Sha384Context));\r
}\r
\r
/**\r
if (HashValue == NULL) {\r
return FALSE;\r
}\r
- if (Data == NULL && DataSize != 0) {\r
+\r
+ if ((Data == NULL) && (DataSize != 0)) {\r
return FALSE;\r
}\r
\r
//\r
// Retrieves OpenSSL SHA-512 Context Size\r
//\r
- return (UINTN) (sizeof (SHA512_CTX));\r
+ return (UINTN)(sizeof (SHA512_CTX));\r
}\r
\r
/**\r
//\r
// OpenSSL SHA-512 Context Initialization\r
//\r
- return (BOOLEAN) (SHA512_Init ((SHA512_CTX *) Sha512Context));\r
+ return (BOOLEAN)(SHA512_Init ((SHA512_CTX *)Sha512Context));\r
}\r
\r
/**\r
//\r
// Check input parameters.\r
//\r
- if (Sha512Context == NULL || NewSha512Context == NULL) {\r
+ if ((Sha512Context == NULL) || (NewSha512Context == NULL)) {\r
return FALSE;\r
}\r
\r
//\r
// Check invalid parameters, in case that only DataLength was checked in OpenSSL\r
//\r
- if (Data == NULL && DataSize != 0) {\r
+ if ((Data == NULL) && (DataSize != 0)) {\r
return FALSE;\r
}\r
\r
//\r
// OpenSSL SHA-512 Hash Update\r
//\r
- return (BOOLEAN) (SHA512_Update ((SHA512_CTX *) Sha512Context, Data, DataSize));\r
+ return (BOOLEAN)(SHA512_Update ((SHA512_CTX *)Sha512Context, Data, DataSize));\r
}\r
\r
/**\r
//\r
// Check input parameters.\r
//\r
- if (Sha512Context == NULL || HashValue == NULL) {\r
+ if ((Sha512Context == NULL) || (HashValue == NULL)) {\r
return FALSE;\r
}\r
\r
//\r
// OpenSSL SHA-512 Hash Finalization\r
//\r
- return (BOOLEAN) (SHA384_Final (HashValue, (SHA512_CTX *) Sha512Context));\r
+ return (BOOLEAN)(SHA384_Final (HashValue, (SHA512_CTX *)Sha512Context));\r
}\r
\r
/**\r
if (HashValue == NULL) {\r
return FALSE;\r
}\r
- if (Data == NULL && DataSize != 0) {\r
+\r
+ if ((Data == NULL) && (DataSize != 0)) {\r
return FALSE;\r
}\r
\r
//\r
// Retrieves Openssl SM3 Context Size\r
//\r
- return (UINTN) (sizeof (SM3_CTX));\r
+ return (UINTN)(sizeof (SM3_CTX));\r
}\r
\r
/**\r
//\r
// Openssl SM3 Context Initialization\r
//\r
- sm3_init ((SM3_CTX *) Sm3Context);\r
+ sm3_init ((SM3_CTX *)Sm3Context);\r
return TRUE;\r
}\r
\r
//\r
// Check input parameters.\r
//\r
- if (Sm3Context == NULL || NewSm3Context == NULL) {\r
+ if ((Sm3Context == NULL) || (NewSm3Context == NULL)) {\r
return FALSE;\r
}\r
\r
//\r
// Check invalid parameters, in case that only DataLength was checked in Openssl\r
//\r
- if (Data == NULL && DataSize != 0) {\r
+ if ((Data == NULL) && (DataSize != 0)) {\r
return FALSE;\r
}\r
\r
//\r
// Openssl SM3 Hash Update\r
//\r
- sm3_update ((SM3_CTX *) Sm3Context, Data, DataSize);\r
+ sm3_update ((SM3_CTX *)Sm3Context, Data, DataSize);\r
\r
return TRUE;\r
}\r
//\r
// Check input parameters.\r
//\r
- if (Sm3Context == NULL || HashValue == NULL) {\r
+ if ((Sm3Context == NULL) || (HashValue == NULL)) {\r
return FALSE;\r
}\r
\r
//\r
// Openssl SM3 Hash Finalization\r
//\r
- sm3_final (HashValue, (SM3_CTX *) Sm3Context);\r
+ sm3_final (HashValue, (SM3_CTX *)Sm3Context);\r
\r
return TRUE;\r
}\r
OUT UINT8 *HashValue\r
)\r
{\r
- SM3_CTX Ctx;\r
+ SM3_CTX Ctx;\r
\r
//\r
// Check input parameters.\r
if (HashValue == NULL) {\r
return FALSE;\r
}\r
- if (Data == NULL && DataSize != 0) {\r
+\r
+ if ((Data == NULL) && (DataSize != 0)) {\r
return FALSE;\r
}\r
\r
//\r
// SM3 Hash Computation.\r
//\r
- sm3_init(&Ctx);\r
+ sm3_init (&Ctx);\r
\r
- sm3_update(&Ctx, Data, DataSize);\r
+ sm3_update (&Ctx, Data, DataSize);\r
\r
- sm3_final(HashValue, &Ctx);\r
+ sm3_final (HashValue, &Ctx);\r
\r
return TRUE;\r
}\r
//\r
// Allocates & Initializes HMAC_CTX Context by OpenSSL HMAC_CTX_new()\r
//\r
- return (VOID *) HMAC_CTX_new ();\r
+ return (VOID *)HMAC_CTX_new ();\r
}\r
\r
/**\r
//\r
// Check input parameters.\r
//\r
- if (HmacSha256Context == NULL || KeySize > INT_MAX) {\r
+ if ((HmacSha256Context == NULL) || (KeySize > INT_MAX)) {\r
return FALSE;\r
}\r
\r
- if (HMAC_Init_ex ((HMAC_CTX *)HmacSha256Context, Key, (UINT32) KeySize, EVP_sha256(), NULL) != 1) {\r
+ if (HMAC_Init_ex ((HMAC_CTX *)HmacSha256Context, Key, (UINT32)KeySize, EVP_sha256 (), NULL) != 1) {\r
return FALSE;\r
}\r
\r
//\r
// Check input parameters.\r
//\r
- if (HmacSha256Context == NULL || NewHmacSha256Context == NULL) {\r
+ if ((HmacSha256Context == NULL) || (NewHmacSha256Context == NULL)) {\r
return FALSE;\r
}\r
\r
//\r
// Check invalid parameters, in case that only DataLength was checked in OpenSSL\r
//\r
- if (Data == NULL && DataSize != 0) {\r
+ if ((Data == NULL) && (DataSize != 0)) {\r
return FALSE;\r
}\r
\r
//\r
// Check input parameters.\r
//\r
- if (HmacSha256Context == NULL || HmacValue == NULL) {\r
+ if ((HmacSha256Context == NULL) || (HmacValue == NULL)) {\r
return FALSE;\r
}\r
\r
if (HMAC_Final ((HMAC_CTX *)HmacSha256Context, HmacValue, &Length) != 1) {\r
return FALSE;\r
}\r
+\r
if (HMAC_CTX_reset ((HMAC_CTX *)HmacSha256Context) != 1) {\r
return FALSE;\r
}\r
#include <openssl/opensslv.h>\r
\r
#if OPENSSL_VERSION_NUMBER < 0x10100000L\r
-#define OBJ_get0_data(o) ((o)->data)\r
-#define OBJ_length(o) ((o)->length)\r
+#define OBJ_get0_data(o) ((o)->data)\r
+#define OBJ_length(o) ((o)->length)\r
#endif\r
\r
/**\r
IN UINTN OutSize\r
)\r
{\r
- EVP_PKEY_CTX *pHkdfCtx;\r
- BOOLEAN Result;\r
+ EVP_PKEY_CTX *pHkdfCtx;\r
+ BOOLEAN Result;\r
\r
- if (Key == NULL || Salt == NULL || Info == NULL || Out == NULL ||\r
- KeySize > INT_MAX || SaltSize > INT_MAX || InfoSize > INT_MAX || OutSize > INT_MAX ) {\r
+ if ((Key == NULL) || (Salt == NULL) || (Info == NULL) || (Out == NULL) ||\r
+ (KeySize > INT_MAX) || (SaltSize > INT_MAX) || (InfoSize > INT_MAX) || (OutSize > INT_MAX))\r
+ {\r
return FALSE;\r
}\r
\r
- pHkdfCtx = EVP_PKEY_CTX_new_id(EVP_PKEY_HKDF, NULL);\r
+ pHkdfCtx = EVP_PKEY_CTX_new_id (EVP_PKEY_HKDF, NULL);\r
if (pHkdfCtx == NULL) {\r
return FALSE;\r
}\r
\r
- Result = EVP_PKEY_derive_init(pHkdfCtx) > 0;\r
+ Result = EVP_PKEY_derive_init (pHkdfCtx) > 0;\r
if (Result) {\r
- Result = EVP_PKEY_CTX_set_hkdf_md(pHkdfCtx, EVP_sha256()) > 0;\r
+ Result = EVP_PKEY_CTX_set_hkdf_md (pHkdfCtx, EVP_sha256 ()) > 0;\r
}\r
+\r
if (Result) {\r
- Result = EVP_PKEY_CTX_set1_hkdf_salt(pHkdfCtx, Salt, (UINT32)SaltSize) > 0;\r
+ Result = EVP_PKEY_CTX_set1_hkdf_salt (pHkdfCtx, Salt, (UINT32)SaltSize) > 0;\r
}\r
+\r
if (Result) {\r
- Result = EVP_PKEY_CTX_set1_hkdf_key(pHkdfCtx, Key, (UINT32)KeySize) > 0;\r
+ Result = EVP_PKEY_CTX_set1_hkdf_key (pHkdfCtx, Key, (UINT32)KeySize) > 0;\r
}\r
+\r
if (Result) {\r
- Result = EVP_PKEY_CTX_add1_hkdf_info(pHkdfCtx, Info, (UINT32)InfoSize) > 0;\r
+ Result = EVP_PKEY_CTX_add1_hkdf_info (pHkdfCtx, Info, (UINT32)InfoSize) > 0;\r
}\r
+\r
if (Result) {\r
- Result = EVP_PKEY_derive(pHkdfCtx, Out, &OutSize) > 0;\r
+ Result = EVP_PKEY_derive (pHkdfCtx, Out, &OutSize) > 0;\r
}\r
\r
- EVP_PKEY_CTX_free(pHkdfCtx);\r
+ EVP_PKEY_CTX_free (pHkdfCtx);\r
pHkdfCtx = NULL;\r
return Result;\r
}\r
{\r
INTN KeyLength;\r
\r
- ZeroMem ((VOID *) Buf, (UINTN) Size);\r
+ ZeroMem ((VOID *)Buf, (UINTN)Size);\r
if (Key != NULL) {\r
//\r
// Duplicate key phrase directly.\r
//\r
- KeyLength = (INTN) AsciiStrLen ((CHAR8 *)Key);\r
- KeyLength = (KeyLength > Size ) ? Size : KeyLength;\r
- CopyMem (Buf, Key, (UINTN) KeyLength);\r
+ KeyLength = (INTN)AsciiStrLen ((CHAR8 *)Key);\r
+ KeyLength = (KeyLength > Size) ? Size : KeyLength;\r
+ CopyMem (Buf, Key, (UINTN)KeyLength);\r
return KeyLength;\r
} else {\r
return 0;\r
//\r
// Check input parameters.\r
//\r
- if (PemData == NULL || RsaContext == NULL || PemSize > INT_MAX) {\r
+ if ((PemData == NULL) || (RsaContext == NULL) || (PemSize > INT_MAX)) {\r
return FALSE;\r
}\r
\r
if (EVP_add_cipher (EVP_aes_128_cbc ()) == 0) {\r
return FALSE;\r
}\r
+\r
if (EVP_add_cipher (EVP_aes_192_cbc ()) == 0) {\r
return FALSE;\r
}\r
+\r
if (EVP_add_cipher (EVP_aes_256_cbc ()) == 0) {\r
return FALSE;\r
}\r
goto _Exit;\r
}\r
\r
- if (BIO_write (PemBio, PemData, (int) PemSize) <= 0) {\r
+ if (BIO_write (PemBio, PemData, (int)PemSize) <= 0) {\r
goto _Exit;\r
}\r
\r
//\r
// Retrieve RSA Private Key from encrypted PEM data.\r
//\r
- *RsaContext = PEM_read_bio_RSAPrivateKey (PemBio, NULL, (pem_password_cb *) &PasswordCallback, (void *) Password);\r
+ *RsaContext = PEM_read_bio_RSAPrivateKey (PemBio, NULL, (pem_password_cb *)&PasswordCallback, (void *)Password);\r
if (*RsaContext != NULL) {\r
Status = TRUE;\r
}\r
//\r
// OID ASN.1 Value for SPC_INDIRECT_DATA_OBJID\r
//\r
-UINT8 mSpcIndirectOidValue[] = {\r
+UINT8 mSpcIndirectOidValue[] = {\r
0x2B, 0x06, 0x01, 0x04, 0x01, 0x82, 0x37, 0x02, 0x01, 0x04\r
- };\r
+};\r
\r
/**\r
Verifies the validity of a PE/COFF Authenticode Signature as described in "Windows\r
// some authenticode-specific structure. Use opaque ASN.1 string to retrieve\r
// PKCS#7 ContentInfo here.\r
//\r
- SpcIndirectDataOid = OBJ_get0_data(Pkcs7->d.sign->contents->type);\r
- if (OBJ_length(Pkcs7->d.sign->contents->type) != sizeof(mSpcIndirectOidValue) ||\r
- CompareMem (\r
- SpcIndirectDataOid,\r
- mSpcIndirectOidValue,\r
- sizeof (mSpcIndirectOidValue)\r
- ) != 0) {\r
+ SpcIndirectDataOid = OBJ_get0_data (Pkcs7->d.sign->contents->type);\r
+ if ((OBJ_length (Pkcs7->d.sign->contents->type) != sizeof (mSpcIndirectOidValue)) ||\r
+ (CompareMem (\r
+ SpcIndirectDataOid,\r
+ mSpcIndirectOidValue,\r
+ sizeof (mSpcIndirectOidValue)\r
+ ) != 0))\r
+ {\r
//\r
// Un-matched SPC_INDIRECT_DATA_OBJID.\r
//\r
goto _Exit;\r
}\r
\r
-\r
SpcIndirectDataContent = (UINT8 *)(Pkcs7->d.sign->contents->d.other->value.asn1_string->data);\r
\r
//\r
//\r
// Short Form of Length Encoding (Length < 128)\r
//\r
- ContentSize = (UINTN) (Asn1Byte & 0x7F);\r
+ ContentSize = (UINTN)(Asn1Byte & 0x7F);\r
//\r
// Skip the SEQUENCE Tag;\r
//\r
SpcIndirectDataContent += 2;\r
-\r
} else if ((Asn1Byte & 0x81) == 0x81) {\r
//\r
// Long Form of Length Encoding (128 <= Length < 255, Single Octet)\r
//\r
- ContentSize = (UINTN) (*(UINT8 *)(SpcIndirectDataContent + 2));\r
+ ContentSize = (UINTN)(*(UINT8 *)(SpcIndirectDataContent + 2));\r
//\r
// Skip the SEQUENCE Tag;\r
//\r
SpcIndirectDataContent += 3;\r
-\r
} else if ((Asn1Byte & 0x82) == 0x82) {\r
//\r
// Long Form of Length Encoding (Length > 255, Two Octet)\r
//\r
- ContentSize = (UINTN) (*(UINT8 *)(SpcIndirectDataContent + 2));\r
+ ContentSize = (UINTN)(*(UINT8 *)(SpcIndirectDataContent + 2));\r
ContentSize = (ContentSize << 8) + (UINTN)(*(UINT8 *)(SpcIndirectDataContent + 3));\r
//\r
// Skip the SEQUENCE Tag;\r
//\r
SpcIndirectDataContent += 4;\r
-\r
} else {\r
goto _Exit;\r
}\r
//\r
// Verifies the PKCS#7 Signed Data in PE/COFF Authenticode Signature\r
//\r
- Status = (BOOLEAN) Pkcs7Verify (OrigAuthData, DataSize, TrustedCert, CertSize, SpcIndirectDataContent, ContentSize);\r
+ Status = (BOOLEAN)Pkcs7Verify (OrigAuthData, DataSize, TrustedCert, CertSize, SpcIndirectDataContent, ContentSize);\r
\r
_Exit:\r
//\r
//\r
// Allocates & Initializes DH Context by OpenSSL DH_new()\r
//\r
- return (VOID *) DH_new ();\r
+ return (VOID *)DH_new ();\r
}\r
\r
/**\r
//\r
// Free OpenSSL DH Context\r
//\r
- DH_free ((DH *) DhContext);\r
+ DH_free ((DH *)DhContext);\r
}\r
\r
/**\r
OUT UINT8 *Prime\r
)\r
{\r
- BOOLEAN RetVal;\r
- BIGNUM *BnP;\r
+ BOOLEAN RetVal;\r
+ BIGNUM *BnP;\r
\r
//\r
// Check input parameters.\r
//\r
- if (DhContext == NULL || Prime == NULL || PrimeLength > INT_MAX) {\r
+ if ((DhContext == NULL) || (Prime == NULL) || (PrimeLength > INT_MAX)) {\r
return FALSE;\r
}\r
\r
- if (Generator != DH_GENERATOR_2 && Generator != DH_GENERATOR_5) {\r
+ if ((Generator != DH_GENERATOR_2) && (Generator != DH_GENERATOR_5)) {\r
return FALSE;\r
}\r
\r
- RetVal = (BOOLEAN) DH_generate_parameters_ex (DhContext, (UINT32) PrimeLength, (UINT32) Generator, NULL);\r
+ RetVal = (BOOLEAN)DH_generate_parameters_ex (DhContext, (UINT32)PrimeLength, (UINT32)Generator, NULL);\r
if (!RetVal) {\r
return FALSE;\r
}\r
//\r
// Check input parameters.\r
//\r
- if (DhContext == NULL || Prime == NULL || PrimeLength > INT_MAX) {\r
+ if ((DhContext == NULL) || (Prime == NULL) || (PrimeLength > INT_MAX)) {\r
return FALSE;\r
}\r
\r
- if (Generator != DH_GENERATOR_2 && Generator != DH_GENERATOR_5) {\r
+ if ((Generator != DH_GENERATOR_2) && (Generator != DH_GENERATOR_5)) {\r
return FALSE;\r
}\r
\r
IN OUT UINTN *PublicKeySize\r
)\r
{\r
- BOOLEAN RetVal;\r
- DH *Dh;\r
- BIGNUM *DhPubKey;\r
- INTN Size;\r
+ BOOLEAN RetVal;\r
+ DH *Dh;\r
+ BIGNUM *DhPubKey;\r
+ INTN Size;\r
\r
//\r
// Check input parameters.\r
//\r
- if (DhContext == NULL || PublicKeySize == NULL) {\r
+ if ((DhContext == NULL) || (PublicKeySize == NULL)) {\r
return FALSE;\r
}\r
\r
- if (PublicKey == NULL && *PublicKeySize != 0) {\r
+ if ((PublicKey == NULL) && (*PublicKeySize != 0)) {\r
return FALSE;\r
}\r
\r
- Dh = (DH *) DhContext;\r
+ Dh = (DH *)DhContext;\r
\r
- RetVal = (BOOLEAN) DH_generate_key (DhContext);\r
+ RetVal = (BOOLEAN)DH_generate_key (DhContext);\r
if (RetVal) {\r
DH_get0_key (Dh, (const BIGNUM **)&DhPubKey, NULL);\r
Size = BN_num_bytes (DhPubKey);\r
- if ((Size > 0) && (*PublicKeySize < (UINTN) Size)) {\r
+ if ((Size > 0) && (*PublicKeySize < (UINTN)Size)) {\r
*PublicKeySize = Size;\r
return FALSE;\r
}\r
if (PublicKey != NULL) {\r
BN_bn2bin (DhPubKey, PublicKey);\r
}\r
+\r
*PublicKeySize = Size;\r
}\r
\r
//\r
// Check input parameters.\r
//\r
- if (DhContext == NULL || PeerPublicKey == NULL || KeySize == NULL || Key == NULL) {\r
+ if ((DhContext == NULL) || (PeerPublicKey == NULL) || (KeySize == NULL) || (Key == NULL)) {\r
return FALSE;\r
}\r
\r
return FALSE;\r
}\r
\r
- Bn = BN_bin2bn (PeerPublicKey, (UINT32) PeerPublicKeySize, NULL);\r
+ Bn = BN_bin2bn (PeerPublicKey, (UINT32)PeerPublicKeySize, NULL);\r
if (Bn == NULL) {\r
return FALSE;\r
}\r
return FALSE;\r
}\r
\r
- if (*KeySize < (UINTN) Size) {\r
+ if (*KeySize < (UINTN)Size) {\r
*KeySize = Size;\r
BN_free (Bn);\r
return FALSE;\r
//\r
// Check input parameters.\r
//\r
- if (PublicKey == NULL || InData == NULL ||\r
- EncryptedData == NULL || EncryptedDataSize == NULL) {\r
+ if ((PublicKey == NULL) || (InData == NULL) ||\r
+ (EncryptedData == NULL) || (EncryptedDataSize == NULL))\r
+ {\r
return FALSE;\r
}\r
\r
return FALSE;\r
}\r
\r
- *EncryptedData = NULL;\r
- *EncryptedDataSize = 0;\r
- Result = FALSE;\r
- TempPointer = NULL;\r
- CertData = NULL;\r
- InternalPublicKey = NULL;\r
- PkeyCtx = NULL;\r
- OutData = NULL;\r
- OutDataSize = 0;\r
+ *EncryptedData = NULL;\r
+ *EncryptedDataSize = 0;\r
+ Result = FALSE;\r
+ TempPointer = NULL;\r
+ CertData = NULL;\r
+ InternalPublicKey = NULL;\r
+ PkeyCtx = NULL;\r
+ OutData = NULL;\r
+ OutDataSize = 0;\r
\r
//\r
// If it provides a seed then use it.\r
// Parse the X509 cert and extract the public key.\r
//\r
TempPointer = PublicKey;\r
- CertData = d2i_X509 (&CertData, &TempPointer, (UINT32)PublicKeySize);\r
+ CertData = d2i_X509 (&CertData, &TempPointer, (UINT32)PublicKeySize);\r
if (CertData == NULL) {\r
//\r
// Fail to parse X509 cert.\r
//\r
goto _Exit;\r
}\r
+\r
//\r
// Initialize the context and set the desired padding.\r
//\r
- if (EVP_PKEY_encrypt_init (PkeyCtx) <= 0 ||\r
- EVP_PKEY_CTX_set_rsa_padding (PkeyCtx, RSA_PKCS1_OAEP_PADDING) <= 0) {\r
+ if ((EVP_PKEY_encrypt_init (PkeyCtx) <= 0) ||\r
+ (EVP_PKEY_CTX_set_rsa_padding (PkeyCtx, RSA_PKCS1_OAEP_PADDING) <= 0))\r
+ {\r
//\r
// Fail to initialize the context.\r
//\r
// Fail to encrypt data, need to free the output buffer.\r
//\r
FreePool (OutData);\r
- OutData = NULL;\r
+ OutData = NULL;\r
OutDataSize = 0;\r
goto _Exit;\r
}\r
//\r
// Encrypt done.\r
//\r
- *EncryptedData = OutData;\r
+ *EncryptedData = OutData;\r
*EncryptedDataSize = OutDataSize;\r
- Result = TRUE;\r
+ Result = TRUE;\r
\r
_Exit:\r
//\r
// Release Resources\r
//\r
if (CertData != NULL) {\r
- X509_free (CertData );\r
+ X509_free (CertData);\r
}\r
+\r
if (InternalPublicKey != NULL) {\r
EVP_PKEY_free (InternalPublicKey);\r
}\r
+\r
if (PkeyCtx != NULL) {\r
EVP_PKEY_CTX_free (PkeyCtx);\r
}\r
if ((Password == NULL) || (Salt == NULL) || (OutKey == NULL)) {\r
return FALSE;\r
}\r
+\r
if ((PasswordLength == 0) || (PasswordLength > INT_MAX) ||\r
(SaltLength == 0) || (SaltLength > INT_MAX) ||\r
(KeyLength == 0) || (KeyLength > INT_MAX) ||\r
- (IterationCount < 1) || (IterationCount > INT_MAX)) {\r
+ (IterationCount < 1) || (IterationCount > INT_MAX))\r
+ {\r
return FALSE;\r
}\r
+\r
//\r
// Make sure the digest algorithm is supported.\r
//\r
switch (DigestSize) {\r
- case SHA1_DIGEST_SIZE:\r
- HashAlg = EVP_sha1();\r
- break;\r
- case SHA256_DIGEST_SIZE:\r
- HashAlg = EVP_sha256();\r
- break;\r
- default:\r
- return FALSE;\r
- break;\r
+ case SHA1_DIGEST_SIZE:\r
+ HashAlg = EVP_sha1 ();\r
+ break;\r
+ case SHA256_DIGEST_SIZE:\r
+ HashAlg = EVP_sha256 ();\r
+ break;\r
+ default:\r
+ return FALSE;\r
+ break;\r
}\r
\r
//\r
//\r
// Check input parameters.\r
//\r
- if (PrivateKey == NULL || KeyPassword == NULL || InData == NULL ||\r
- SignCert == NULL || SignedData == NULL || SignedDataSize == NULL || InDataSize > INT_MAX) {\r
+ if ((PrivateKey == NULL) || (KeyPassword == NULL) || (InData == NULL) ||\r
+ (SignCert == NULL) || (SignedData == NULL) || (SignedDataSize == NULL) || (InDataSize > INT_MAX))\r
+ {\r
return FALSE;\r
}\r
\r
Status = RsaGetPrivateKeyFromPem (\r
PrivateKey,\r
PrivateKeySize,\r
- (CONST CHAR8 *) KeyPassword,\r
- (VOID **) &RsaContext\r
+ (CONST CHAR8 *)KeyPassword,\r
+ (VOID **)&RsaContext\r
);\r
if (!Status) {\r
return Status;\r
if (EVP_add_digest (EVP_md5 ()) == 0) {\r
goto _Exit;\r
}\r
+\r
if (EVP_add_digest (EVP_sha1 ()) == 0) {\r
goto _Exit;\r
}\r
+\r
if (EVP_add_digest (EVP_sha256 ()) == 0) {\r
goto _Exit;\r
}\r
if (Key == NULL) {\r
goto _Exit;\r
}\r
- if (EVP_PKEY_assign_RSA (Key, (RSA *) RsaContext) == 0) {\r
+\r
+ if (EVP_PKEY_assign_RSA (Key, (RSA *)RsaContext) == 0) {\r
goto _Exit;\r
}\r
\r
goto _Exit;\r
}\r
\r
- if (BIO_write (DataBio, InData, (int) InDataSize) <= 0) {\r
+ if (BIO_write (DataBio, InData, (int)InDataSize) <= 0) {\r
goto _Exit;\r
}\r
\r
// Create the PKCS#7 signedData structure.\r
//\r
Pkcs7 = PKCS7_sign (\r
- (X509 *) SignCert,\r
+ (X509 *)SignCert,\r
Key,\r
- (STACK_OF(X509) *) OtherCerts,\r
+ (STACK_OF (X509) *) OtherCerts,\r
DataBio,\r
PKCS7_BINARY | PKCS7_NOATTR | PKCS7_DETACHED\r
);\r
goto _Exit;\r
}\r
\r
- P7Data = malloc (P7DataSize);\r
+ P7Data = malloc (P7DataSize);\r
if (P7Data == NULL) {\r
goto _Exit;\r
}\r
\r
Tmp = P7Data;\r
- P7DataSize = i2d_PKCS7 (Pkcs7, (unsigned char **) &Tmp);\r
+ P7DataSize = i2d_PKCS7 (Pkcs7, (unsigned char **)&Tmp);\r
ASSERT (P7DataSize > 19);\r
\r
//\r
ASSERT (FALSE);\r
return FALSE;\r
}\r
-\r
STATIC\r
BOOLEAN\r
Pkcs7TypeIsOther (\r
- IN PKCS7 *P7\r
+ IN PKCS7 *P7\r
)\r
{\r
- BOOLEAN Others;\r
- INTN Nid = OBJ_obj2nid (P7->type);\r
+ BOOLEAN Others;\r
+ INTN Nid = OBJ_obj2nid (P7->type);\r
\r
switch (Nid) {\r
case NID_pkcs7_data:\r
@return ASN1_OCTET_STRING ASN.1 string.\r
**/\r
STATIC\r
-ASN1_OCTET_STRING*\r
+ASN1_OCTET_STRING *\r
Pkcs7GetOctetString (\r
- IN PKCS7 *P7\r
+ IN PKCS7 *P7\r
)\r
{\r
if (PKCS7_type_is_data (P7)) {\r
return P7->d.data;\r
}\r
\r
- if (Pkcs7TypeIsOther(P7) && (P7->d.other != NULL) &&\r
- (P7->d.other->type == V_ASN1_OCTET_STRING)) {\r
+ if (Pkcs7TypeIsOther (P7) && (P7->d.other != NULL) &&\r
+ (P7->d.other->type == V_ASN1_OCTET_STRING))\r
+ {\r
return P7->d.other->value.octet_string;\r
}\r
\r
*ContentSize = 0;\r
goto _Exit;\r
}\r
+\r
CopyMem (*Content, OctStr->data, *ContentSize);\r
}\r
}\r
+\r
Status = TRUE;\r
\r
_Exit:\r
#include <openssl/x509v3.h>\r
#include <openssl/pkcs7.h>\r
\r
-UINT8 mOidValue[9] = { 0x2A, 0x86, 0x48, 0x86, 0xF7, 0x0D, 0x01, 0x07, 0x02 };\r
+UINT8 mOidValue[9] = { 0x2A, 0x86, 0x48, 0x86, 0xF7, 0x0D, 0x01, 0x07, 0x02 };\r
\r
/**\r
Check input P7Data is a wrapped ContentInfo structure or not. If not construct\r
OUT UINTN *WrapDataSize\r
)\r
{\r
- BOOLEAN Wrapped;\r
- UINT8 *SignedData;\r
+ BOOLEAN Wrapped;\r
+ UINT8 *SignedData;\r
\r
//\r
// Check whether input P7Data is a wrapped ContentInfo structure or not.\r
}\r
\r
if (Wrapped) {\r
- *WrapData = (UINT8 *) P7Data;\r
+ *WrapData = (UINT8 *)P7Data;\r
*WrapDataSize = P7Length;\r
} else {\r
//\r
//\r
// Part2: Length1 = P7Length + 19 - 4, in big endian.\r
//\r
- SignedData[2] = (UINT8) (((UINT16) (*WrapDataSize - 4)) >> 8);\r
- SignedData[3] = (UINT8) (((UINT16) (*WrapDataSize - 4)) & 0xff);\r
+ SignedData[2] = (UINT8)(((UINT16)(*WrapDataSize - 4)) >> 8);\r
+ SignedData[3] = (UINT8)(((UINT16)(*WrapDataSize - 4)) & 0xff);\r
\r
//\r
// Part3: 0x06, 0x09.\r
//\r
// Part6: Length2 = P7Length, in big endian.\r
//\r
- SignedData[17] = (UINT8) (((UINT16) P7Length) >> 8);\r
- SignedData[18] = (UINT8) (((UINT16) P7Length) & 0xff);\r
+ SignedData[17] = (UINT8)(((UINT16)P7Length) >> 8);\r
+ SignedData[18] = (UINT8)(((UINT16)P7Length) & 0xff);\r
\r
//\r
// Part7: P7Data.\r
**/\r
BOOLEAN\r
X509PopCertificate (\r
- IN VOID *X509Stack,\r
- OUT UINT8 **Cert,\r
- OUT UINTN *CertSize\r
+ IN VOID *X509Stack,\r
+ OUT UINT8 **Cert,\r
+ OUT UINTN *CertSize\r
)\r
{\r
- BIO *CertBio;\r
- X509 *X509Cert;\r
- STACK_OF(X509) *CertStack;\r
- BOOLEAN Status;\r
- INT32 Result;\r
- BUF_MEM *Ptr;\r
- INT32 Length;\r
- VOID *Buffer;\r
+ BIO *CertBio;\r
+ X509 *X509Cert;\r
+\r
+ STACK_OF (X509) *CertStack;\r
+ BOOLEAN Status;\r
+ INT32 Result;\r
+ BUF_MEM *Ptr;\r
+ INT32 Length;\r
+ VOID *Buffer;\r
\r
Status = FALSE;\r
\r
return Status;\r
}\r
\r
- CertStack = (STACK_OF(X509) *) X509Stack;\r
+ CertStack = (STACK_OF (X509) *) X509Stack;\r
\r
X509Cert = sk_X509_pop (CertStack);\r
\r
OUT UINTN *CertLength\r
)\r
{\r
- PKCS7 *Pkcs7;\r
- BOOLEAN Status;\r
- UINT8 *SignedData;\r
- CONST UINT8 *Temp;\r
- UINTN SignedDataSize;\r
- BOOLEAN Wrapped;\r
- STACK_OF(X509) *Stack;\r
- UINT8 Index;\r
- UINT8 *CertBuf;\r
- UINT8 *OldBuf;\r
- UINTN BufferSize;\r
- UINTN OldSize;\r
- UINT8 *SingleCert;\r
- UINTN SingleCertSize;\r
+ PKCS7 *Pkcs7;\r
+ BOOLEAN Status;\r
+ UINT8 *SignedData;\r
+ CONST UINT8 *Temp;\r
+ UINTN SignedDataSize;\r
+ BOOLEAN Wrapped;\r
+\r
+ STACK_OF (X509) *Stack;\r
+ UINT8 Index;\r
+ UINT8 *CertBuf;\r
+ UINT8 *OldBuf;\r
+ UINTN BufferSize;\r
+ UINTN OldSize;\r
+ UINT8 *SingleCert;\r
+ UINTN SingleCertSize;\r
\r
if ((P7Data == NULL) || (CertStack == NULL) || (StackLength == NULL) ||\r
- (TrustedCert == NULL) || (CertLength == NULL) || (P7Length > INT_MAX)) {\r
+ (TrustedCert == NULL) || (CertLength == NULL) || (P7Length > INT_MAX))\r
+ {\r
return FALSE;\r
}\r
\r
goto _Exit;\r
}\r
\r
- Temp = SignedData;\r
- Pkcs7 = d2i_PKCS7 (NULL, (const unsigned char **) &Temp, (int) SignedDataSize);\r
+ Temp = SignedData;\r
+ Pkcs7 = d2i_PKCS7 (NULL, (const unsigned char **)&Temp, (int)SignedDataSize);\r
if (Pkcs7 == NULL) {\r
goto _Exit;\r
}\r
goto _Exit;\r
}\r
\r
- Stack = PKCS7_get0_signers(Pkcs7, NULL, PKCS7_BINARY);\r
+ Stack = PKCS7_get0_signers (Pkcs7, NULL, PKCS7_BINARY);\r
if (Stack == NULL) {\r
goto _Exit;\r
}\r
OldBuf = NULL;\r
}\r
\r
- WriteUnaligned32 ((UINT32 *) (CertBuf + OldSize), (UINT32) SingleCertSize);\r
+ WriteUnaligned32 ((UINT32 *)(CertBuf + OldSize), (UINT32)SingleCertSize);\r
CopyMem (CertBuf + OldSize + sizeof (UINT32), SingleCert, SingleCertSize);\r
\r
free (SingleCert);\r
//\r
CertBuf[0] = Index;\r
\r
- *CertLength = BufferSize - OldSize - sizeof (UINT32);\r
+ *CertLength = BufferSize - OldSize - sizeof (UINT32);\r
*TrustedCert = malloc (*CertLength);\r
if (*TrustedCert == NULL) {\r
goto _Exit;\r
CopyMem (*TrustedCert, CertBuf + OldSize + sizeof (UINT32), *CertLength);\r
*CertStack = CertBuf;\r
*StackLength = BufferSize;\r
- Status = TRUE;\r
+ Status = TRUE;\r
}\r
\r
_Exit:\r
}\r
\r
if (Stack != NULL) {\r
- sk_X509_pop_free(Stack, X509_free);\r
+ sk_X509_pop_free (Stack, X509_free);\r
}\r
\r
if (SingleCert != NULL) {\r
VOID\r
EFIAPI\r
Pkcs7FreeSigners (\r
- IN UINT8 *Certs\r
+ IN UINT8 *Certs\r
)\r
{\r
if (Certs == NULL) {\r
OUT UINTN *UnchainLength\r
)\r
{\r
- BOOLEAN Status;\r
- UINT8 *NewP7Data;\r
- UINTN NewP7Length;\r
- BOOLEAN Wrapped;\r
- UINT8 Index;\r
- PKCS7 *Pkcs7;\r
- X509_STORE_CTX *CertCtx;\r
- STACK_OF(X509) *CtxChain;\r
- STACK_OF(X509) *CtxUntrusted;\r
- X509 *CtxCert;\r
- STACK_OF(X509) *Signers;\r
- X509 *Signer;\r
- X509 *Cert;\r
- X509 *Issuer;\r
- X509_NAME *IssuerName;\r
- UINT8 *CertBuf;\r
- UINT8 *OldBuf;\r
- UINTN BufferSize;\r
- UINTN OldSize;\r
- UINT8 *SingleCert;\r
- UINTN CertSize;\r
+ BOOLEAN Status;\r
+ UINT8 *NewP7Data;\r
+ UINTN NewP7Length;\r
+ BOOLEAN Wrapped;\r
+ UINT8 Index;\r
+ PKCS7 *Pkcs7;\r
+ X509_STORE_CTX *CertCtx;\r
+\r
+ STACK_OF (X509) *CtxChain;\r
+ STACK_OF (X509) *CtxUntrusted;\r
+ X509 *CtxCert;\r
+\r
+ STACK_OF (X509) *Signers;\r
+ X509 *Signer;\r
+ X509 *Cert;\r
+ X509 *Issuer;\r
+ X509_NAME *IssuerName;\r
+ UINT8 *CertBuf;\r
+ UINT8 *OldBuf;\r
+ UINTN BufferSize;\r
+ UINTN OldSize;\r
+ UINT8 *SingleCert;\r
+ UINTN CertSize;\r
\r
//\r
// Initializations\r
//\r
- Status = FALSE;\r
- NewP7Data = NULL;\r
- Pkcs7 = NULL;\r
- CertCtx = NULL;\r
- CtxChain = NULL;\r
- CtxCert = NULL;\r
- CtxUntrusted = NULL;\r
- Cert = NULL;\r
- SingleCert = NULL;\r
- CertBuf = NULL;\r
- OldBuf = NULL;\r
- Signers = NULL;\r
+ Status = FALSE;\r
+ NewP7Data = NULL;\r
+ Pkcs7 = NULL;\r
+ CertCtx = NULL;\r
+ CtxChain = NULL;\r
+ CtxCert = NULL;\r
+ CtxUntrusted = NULL;\r
+ Cert = NULL;\r
+ SingleCert = NULL;\r
+ CertBuf = NULL;\r
+ OldBuf = NULL;\r
+ Signers = NULL;\r
\r
ZeroMem (&CertCtx, sizeof (CertCtx));\r
\r
// Parameter Checking\r
//\r
if ((P7Data == NULL) || (SignerChainCerts == NULL) || (ChainLength == NULL) ||\r
- (UnchainCerts == NULL) || (UnchainLength == NULL) || (P7Length > INT_MAX)) {\r
+ (UnchainCerts == NULL) || (UnchainLength == NULL) || (P7Length > INT_MAX))\r
+ {\r
return Status;\r
}\r
\r
//\r
// Decodes PKCS#7 SignedData\r
//\r
- Pkcs7 = d2i_PKCS7 (NULL, (const unsigned char **) &NewP7Data, (int) NewP7Length);\r
+ Pkcs7 = d2i_PKCS7 (NULL, (const unsigned char **)&NewP7Data, (int)NewP7Length);\r
if ((Pkcs7 == NULL) || (!PKCS7_type_is_signed (Pkcs7))) {\r
goto _Error;\r
}\r
if ((Signers == NULL) || (sk_X509_num (Signers) != 1)) {\r
goto _Error;\r
}\r
+\r
Signer = sk_X509_value (Signers, 0);\r
\r
CertCtx = X509_STORE_CTX_new ();\r
if (CertCtx == NULL) {\r
goto _Error;\r
}\r
+\r
if (!X509_STORE_CTX_init (CertCtx, NULL, Signer, Pkcs7->d.sign->cert)) {\r
goto _Error;\r
}\r
+\r
//\r
// Initialize Chained & Untrusted stack\r
//\r
CtxCert = X509_STORE_CTX_get0_cert (CertCtx);\r
if (CtxChain == NULL) {\r
if (((CtxChain = sk_X509_new_null ()) == NULL) ||\r
- (!sk_X509_push (CtxChain, CtxCert))) {\r
+ (!sk_X509_push (CtxChain, CtxCert)))\r
+ {\r
goto _Error;\r
}\r
}\r
+\r
CtxUntrusted = X509_STORE_CTX_get0_untrusted (CertCtx);\r
if (CtxUntrusted != NULL) {\r
(VOID)sk_X509_delete_ptr (CtxUntrusted, Signer);\r
// Build certificates stack chained from Signer's certificate.\r
//\r
Cert = Signer;\r
- for (; ;) {\r
+ for ( ; ;) {\r
//\r
// Self-Issue checking\r
//\r
// Found the issuer of the current certificate\r
//\r
if (CtxUntrusted != NULL) {\r
- Issuer = NULL;\r
+ Issuer = NULL;\r
IssuerName = X509_get_issuer_name (Cert);\r
Issuer = X509_find_by_subject (CtxUntrusted, IssuerName);\r
if (Issuer != NULL) {\r
if (!sk_X509_push (CtxChain, Issuer)) {\r
goto _Error;\r
}\r
+\r
(VOID)sk_X509_delete_ptr (CtxUntrusted, Issuer);\r
\r
Cert = Issuer;\r
Status = FALSE;\r
goto _Error;\r
}\r
+\r
if (OldBuf != NULL) {\r
CopyMem (CertBuf, OldBuf, OldSize);\r
free (OldBuf);\r
OldBuf = NULL;\r
}\r
\r
- WriteUnaligned32 ((UINT32 *) (CertBuf + OldSize), (UINT32) CertSize);\r
+ WriteUnaligned32 ((UINT32 *)(CertBuf + OldSize), (UINT32)CertSize);\r
CopyMem (CertBuf + OldSize + sizeof (UINT32), SingleCert, CertSize);\r
\r
free (SingleCert);\r
Status = FALSE;\r
goto _Error;\r
}\r
+\r
if (OldBuf != NULL) {\r
CopyMem (CertBuf, OldBuf, OldSize);\r
free (OldBuf);\r
OldBuf = NULL;\r
}\r
\r
- WriteUnaligned32 ((UINT32 *) (CertBuf + OldSize), (UINT32) CertSize);\r
+ WriteUnaligned32 ((UINT32 *)(CertBuf + OldSize), (UINT32)CertSize);\r
CopyMem (CertBuf + OldSize + sizeof (UINT32), SingleCert, CertSize);\r
\r
free (SingleCert);\r
if (Pkcs7 != NULL) {\r
PKCS7_free (Pkcs7);\r
}\r
+\r
sk_X509_free (Signers);\r
\r
if (CertCtx != NULL) {\r
IN UINTN DataLength\r
)\r
{\r
- PKCS7 *Pkcs7;\r
- BIO *DataBio;\r
- BOOLEAN Status;\r
- X509 *Cert;\r
- X509_STORE *CertStore;\r
- UINT8 *SignedData;\r
- CONST UINT8 *Temp;\r
- UINTN SignedDataSize;\r
- BOOLEAN Wrapped;\r
+ PKCS7 *Pkcs7;\r
+ BIO *DataBio;\r
+ BOOLEAN Status;\r
+ X509 *Cert;\r
+ X509_STORE *CertStore;\r
+ UINT8 *SignedData;\r
+ CONST UINT8 *Temp;\r
+ UINTN SignedDataSize;\r
+ BOOLEAN Wrapped;\r
\r
//\r
// Check input parameters.\r
//\r
- if (P7Data == NULL || TrustedCert == NULL || InData == NULL ||\r
- P7Length > INT_MAX || CertLength > INT_MAX || DataLength > INT_MAX) {\r
+ if ((P7Data == NULL) || (TrustedCert == NULL) || (InData == NULL) ||\r
+ (P7Length > INT_MAX) || (CertLength > INT_MAX) || (DataLength > INT_MAX))\r
+ {\r
return FALSE;\r
}\r
\r
if (EVP_add_digest (EVP_md5 ()) == 0) {\r
return FALSE;\r
}\r
+\r
if (EVP_add_digest (EVP_sha1 ()) == 0) {\r
return FALSE;\r
}\r
+\r
if (EVP_add_digest (EVP_sha256 ()) == 0) {\r
return FALSE;\r
}\r
+\r
if (EVP_add_digest (EVP_sha384 ()) == 0) {\r
return FALSE;\r
}\r
+\r
if (EVP_add_digest (EVP_sha512 ()) == 0) {\r
return FALSE;\r
}\r
+\r
if (EVP_add_digest_alias (SN_sha1WithRSAEncryption, SN_sha1WithRSA) == 0) {\r
return FALSE;\r
}\r
goto _Exit;\r
}\r
\r
- Temp = SignedData;\r
- Pkcs7 = d2i_PKCS7 (NULL, (const unsigned char **) &Temp, (int) SignedDataSize);\r
+ Temp = SignedData;\r
+ Pkcs7 = d2i_PKCS7 (NULL, (const unsigned char **)&Temp, (int)SignedDataSize);\r
if (Pkcs7 == NULL) {\r
goto _Exit;\r
}\r
// Read DER-encoded root certificate and Construct X509 Certificate\r
//\r
Temp = TrustedCert;\r
- Cert = d2i_X509 (NULL, &Temp, (long) CertLength);\r
+ Cert = d2i_X509 (NULL, &Temp, (long)CertLength);\r
if (Cert == NULL) {\r
goto _Exit;\r
}\r
if (CertStore == NULL) {\r
goto _Exit;\r
}\r
+\r
if (!(X509_STORE_add_cert (CertStore, Cert))) {\r
goto _Exit;\r
}\r
// For generic PKCS#7 handling, InData may be NULL if the content is present\r
// in PKCS#7 structure. So ignore NULL checking here.\r
//\r
- DataBio = BIO_new_mem_buf (InData, (int) DataLength);\r
+ DataBio = BIO_new_mem_buf (InData, (int)DataLength);\r
if (DataBio == NULL) {\r
goto _Exit;\r
}\r
// Allow partial certificate chains, terminated by a non-self-signed but\r
// still trusted intermediate certificate. Also disable time checks.\r
//\r
- X509_STORE_set_flags (CertStore,\r
- X509_V_FLAG_PARTIAL_CHAIN | X509_V_FLAG_NO_CHECK_TIME);\r
+ X509_STORE_set_flags (\r
+ CertStore,\r
+ X509_V_FLAG_PARTIAL_CHAIN | X509_V_FLAG_NO_CHECK_TIME\r
+ );\r
\r
//\r
// OpenSSL PKCS7 Verification by default checks for SMIME (email signing) and\r
//\r
// Verifies the PKCS#7 signedData structure\r
//\r
- Status = (BOOLEAN) PKCS7_verify (Pkcs7, NULL, CertStore, DataBio, NULL, PKCS7_BINARY);\r
+ Status = (BOOLEAN)PKCS7_verify (Pkcs7, NULL, CertStore, DataBio, NULL, PKCS7_BINARY);\r
\r
_Exit:\r
//\r
\r
return Status;\r
}\r
-\r
**/\r
EFI_STATUS\r
GetSignerCertificate (\r
- IN CONST PKCS7 *CertChain,\r
- OUT X509 **SignerCert\r
+ IN CONST PKCS7 *CertChain,\r
+ OUT X509 **SignerCert\r
)\r
{\r
- EFI_STATUS Status;\r
- STACK_OF(X509) *Signers;\r
- INT32 NumberSigners;\r
+ EFI_STATUS Status;\r
\r
- Status = EFI_SUCCESS;\r
- Signers = NULL;\r
- NumberSigners = 0;\r
+ STACK_OF (X509) *Signers;\r
+ INT32 NumberSigners;\r
\r
- if (CertChain == NULL || SignerCert == NULL) {\r
+ Status = EFI_SUCCESS;\r
+ Signers = NULL;\r
+ NumberSigners = 0;\r
+\r
+ if ((CertChain == NULL) || (SignerCert == NULL)) {\r
Status = EFI_INVALID_PARAMETER;\r
goto Exit;\r
}\r
//\r
// Get the signers from the chain.\r
//\r
- Signers = PKCS7_get0_signers ((PKCS7*) CertChain, NULL, PKCS7_BINARY);\r
+ Signers = PKCS7_get0_signers ((PKCS7 *)CertChain, NULL, PKCS7_BINARY);\r
if (Signers == NULL) {\r
//\r
// Fail to get signers form PKCS7\r
return Status;\r
}\r
\r
-\r
/**\r
Determines if the specified EKU represented in ASN1 form is present\r
in a given certificate.\r
**/\r
EFI_STATUS\r
IsEkuInCertificate (\r
- IN CONST X509 *Cert,\r
- IN ASN1_OBJECT *Asn1ToFind\r
+ IN CONST X509 *Cert,\r
+ IN ASN1_OBJECT *Asn1ToFind\r
)\r
{\r
EFI_STATUS Status;\r
ASN1_OBJECT *Asn1InCert;\r
INTN Index;\r
\r
- Status = EFI_NOT_FOUND;\r
- ClonedCert = NULL;\r
- Extension = NULL;\r
- Eku = NULL;\r
- ExtensionIndex = -1;\r
- NumExtensions = 0;\r
- Asn1InCert = NULL;\r
+ Status = EFI_NOT_FOUND;\r
+ ClonedCert = NULL;\r
+ Extension = NULL;\r
+ Eku = NULL;\r
+ ExtensionIndex = -1;\r
+ NumExtensions = 0;\r
+ Asn1InCert = NULL;\r
\r
- if (Cert == NULL || Asn1ToFind == NULL) {\r
+ if ((Cert == NULL) || (Asn1ToFind == NULL)) {\r
Status = EFI_INVALID_PARAMETER;\r
goto Exit;\r
}\r
// Clone the certificate. This is required because the Extension API's\r
// only work once per instance of an X509 object.\r
//\r
- ClonedCert = X509_dup ((X509*)Cert);\r
+ ClonedCert = X509_dup ((X509 *)Cert);\r
if (ClonedCert == NULL) {\r
//\r
// Fail to duplicate cert.\r
goto Exit;\r
}\r
\r
- Eku = (EXTENDED_KEY_USAGE*)X509V3_EXT_d2i (Extension);\r
+ Eku = (EXTENDED_KEY_USAGE *)X509V3_EXT_d2i (Extension);\r
if (Eku == NULL) {\r
//\r
// Fail to get Eku from extension.\r
goto Exit;\r
}\r
\r
- if (Asn1InCert->length == Asn1ToFind->length &&\r
- CompareMem (Asn1InCert->data, Asn1ToFind->data, Asn1InCert->length) == 0) {\r
+ if ((Asn1InCert->length == Asn1ToFind->length) &&\r
+ (CompareMem (Asn1InCert->data, Asn1ToFind->data, Asn1InCert->length) == 0))\r
+ {\r
//\r
// Found Eku in certificate.\r
//\r
return Status;\r
}\r
\r
-\r
/**\r
Determines if the specified EKUs are present in a signing certificate.\r
\r
@retval EFI_NOT_FOUND One or more EKU's were not found in the signature.\r
**/\r
EFI_STATUS\r
-CheckEKUs(\r
- IN CONST X509 *SignerCert,\r
- IN CONST CHAR8 *RequiredEKUs[],\r
- IN CONST UINT32 RequiredEKUsSize,\r
- IN BOOLEAN RequireAllPresent\r
+CheckEKUs (\r
+ IN CONST X509 *SignerCert,\r
+ IN CONST CHAR8 *RequiredEKUs[],\r
+ IN CONST UINT32 RequiredEKUsSize,\r
+ IN BOOLEAN RequireAllPresent\r
)\r
{\r
- EFI_STATUS Status;\r
- ASN1_OBJECT *Asn1ToFind;\r
- UINT32 NumEkusFound;\r
- UINT32 Index;\r
+ EFI_STATUS Status;\r
+ ASN1_OBJECT *Asn1ToFind;\r
+ UINT32 NumEkusFound;\r
+ UINT32 Index;\r
\r
Status = EFI_SUCCESS;\r
Asn1ToFind = NULL;\r
NumEkusFound = 0;\r
\r
- if (SignerCert == NULL || RequiredEKUs == NULL || RequiredEKUsSize == 0) {\r
+ if ((SignerCert == NULL) || (RequiredEKUs == NULL) || (RequiredEKUsSize == 0)) {\r
Status = EFI_INVALID_PARAMETER;\r
goto Exit;\r
}\r
// Finding required EKU in cert.\r
//\r
if (Asn1ToFind != NULL) {\r
- ASN1_OBJECT_free(Asn1ToFind);\r
+ ASN1_OBJECT_free (Asn1ToFind);\r
Asn1ToFind = NULL;\r
}\r
\r
Exit:\r
\r
if (Asn1ToFind != NULL) {\r
- ASN1_OBJECT_free(Asn1ToFind);\r
+ ASN1_OBJECT_free (Asn1ToFind);\r
}\r
\r
if (RequireAllPresent &&\r
- NumEkusFound == RequiredEKUsSize) {\r
+ (NumEkusFound == RequiredEKUsSize))\r
+ {\r
//\r
// Found all required EKUs in certificate.\r
//\r
EFI_STATUS\r
EFIAPI\r
VerifyEKUsInPkcs7Signature (\r
- IN CONST UINT8 *Pkcs7Signature,\r
- IN CONST UINT32 SignatureSize,\r
- IN CONST CHAR8 *RequiredEKUs[],\r
- IN CONST UINT32 RequiredEKUsSize,\r
- IN BOOLEAN RequireAllPresent\r
+ IN CONST UINT8 *Pkcs7Signature,\r
+ IN CONST UINT32 SignatureSize,\r
+ IN CONST CHAR8 *RequiredEKUs[],\r
+ IN CONST UINT32 RequiredEKUsSize,\r
+ IN BOOLEAN RequireAllPresent\r
)\r
{\r
- EFI_STATUS Status;\r
- PKCS7 *Pkcs7;\r
- STACK_OF(X509) *CertChain;\r
- INT32 SignatureType;\r
- INT32 NumberCertsInSignature;\r
- X509 *SignerCert;\r
- UINT8 *SignedData;\r
- UINT8 *Temp;\r
- UINTN SignedDataSize;\r
- BOOLEAN IsWrapped;\r
- BOOLEAN Ok;\r
-\r
- Status = EFI_SUCCESS;\r
- Pkcs7 = NULL;\r
- CertChain = NULL;\r
- SignatureType = 0;\r
- NumberCertsInSignature = 0;\r
- SignerCert = NULL;\r
- SignedData = NULL;\r
- SignedDataSize = 0;\r
- IsWrapped = FALSE;\r
- Ok = FALSE;\r
+ EFI_STATUS Status;\r
+ PKCS7 *Pkcs7;\r
+\r
+ STACK_OF (X509) *CertChain;\r
+ INT32 SignatureType;\r
+ INT32 NumberCertsInSignature;\r
+ X509 *SignerCert;\r
+ UINT8 *SignedData;\r
+ UINT8 *Temp;\r
+ UINTN SignedDataSize;\r
+ BOOLEAN IsWrapped;\r
+ BOOLEAN Ok;\r
+\r
+ Status = EFI_SUCCESS;\r
+ Pkcs7 = NULL;\r
+ CertChain = NULL;\r
+ SignatureType = 0;\r
+ NumberCertsInSignature = 0;\r
+ SignerCert = NULL;\r
+ SignedData = NULL;\r
+ SignedDataSize = 0;\r
+ IsWrapped = FALSE;\r
+ Ok = FALSE;\r
\r
//\r
- //Validate the input parameters.\r
+ // Validate the input parameters.\r
//\r
- if (Pkcs7Signature == NULL ||\r
- SignatureSize == 0 ||\r
- RequiredEKUs == NULL ||\r
- RequiredEKUsSize == 0) {\r
+ if ((Pkcs7Signature == NULL) ||\r
+ (SignatureSize == 0) ||\r
+ (RequiredEKUs == NULL) ||\r
+ (RequiredEKUsSize == 0))\r
+ {\r
Status = EFI_INVALID_PARAMETER;\r
goto Exit;\r
}\r
//\r
// Wrap the PKCS7 data if needed.\r
//\r
- Ok = WrapPkcs7Data (Pkcs7Signature,\r
- SignatureSize,\r
- &IsWrapped,\r
- &SignedData,\r
- &SignedDataSize);\r
+ Ok = WrapPkcs7Data (\r
+ Pkcs7Signature,\r
+ SignatureSize,\r
+ &IsWrapped,\r
+ &SignedData,\r
+ &SignedDataSize\r
+ );\r
if (!Ok) {\r
//\r
// Fail to Wrap the PKCS7 data.\r
//\r
SignatureType = OBJ_obj2nid (Pkcs7->type);\r
switch (SignatureType) {\r
- case NID_pkcs7_signed:\r
- if (Pkcs7->d.sign != NULL) {\r
- CertChain = Pkcs7->d.sign->cert;\r
- }\r
- break;\r
- case NID_pkcs7_signedAndEnveloped:\r
- if (Pkcs7->d.signed_and_enveloped != NULL) {\r
- CertChain = Pkcs7->d.signed_and_enveloped->cert;\r
- }\r
- break;\r
- default:\r
- break;\r
+ case NID_pkcs7_signed:\r
+ if (Pkcs7->d.sign != NULL) {\r
+ CertChain = Pkcs7->d.sign->cert;\r
+ }\r
+\r
+ break;\r
+ case NID_pkcs7_signedAndEnveloped:\r
+ if (Pkcs7->d.signed_and_enveloped != NULL) {\r
+ CertChain = Pkcs7->d.signed_and_enveloped->cert;\r
+ }\r
+\r
+ break;\r
+ default:\r
+ break;\r
}\r
\r
//\r
// Get the leaf signer.\r
//\r
Status = GetSignerCertificate (Pkcs7, &SignerCert);\r
- if (Status != EFI_SUCCESS || SignerCert == NULL) {\r
+ if ((Status != EFI_SUCCESS) || (SignerCert == NULL)) {\r
//\r
// Fail to get the end-entity leaf signer certificate.\r
//\r
\r
return Status;\r
}\r
-\r
EFI_STATUS\r
EFIAPI\r
VerifyEKUsInPkcs7Signature (\r
- IN CONST UINT8 *Pkcs7Signature,\r
- IN CONST UINT32 SignatureSize,\r
- IN CONST CHAR8 *RequiredEKUs[],\r
- IN CONST UINT32 RequiredEKUsSize,\r
- IN BOOLEAN RequireAllPresent\r
+ IN CONST UINT8 *Pkcs7Signature,\r
+ IN CONST UINT32 SignatureSize,\r
+ IN CONST CHAR8 *RequiredEKUs[],\r
+ IN CONST UINT32 RequiredEKUsSize,\r
+ IN BOOLEAN RequireAllPresent\r
)\r
{\r
ASSERT (FALSE);\r
return RETURN_UNSUPPORTED;\r
}\r
-\r
VOID\r
EFIAPI\r
Pkcs7FreeSigners (\r
- IN UINT8 *Certs\r
+ IN UINT8 *Certs\r
)\r
{\r
ASSERT (FALSE);\r
ASSERT (FALSE);\r
return FALSE;\r
}\r
-\r
//\r
// Allocates & Initializes RSA Context by OpenSSL RSA_new()\r
//\r
- return (VOID *) RSA_new ();\r
+ return (VOID *)RSA_new ();\r
}\r
\r
/**\r
//\r
// Free OpenSSL RSA Context\r
//\r
- RSA_free ((RSA *) RsaContext);\r
+ RSA_free ((RSA *)RsaContext);\r
}\r
\r
/**\r
//\r
// Check input parameters.\r
//\r
- if (RsaContext == NULL || BnSize > INT_MAX) {\r
+ if ((RsaContext == NULL) || (BnSize > INT_MAX)) {\r
return FALSE;\r
}\r
\r
//\r
// Retrieve the components from RSA object.\r
//\r
- RsaKey = (RSA *) RsaContext;\r
+ RsaKey = (RSA *)RsaContext;\r
RSA_get0_key (RsaKey, (const BIGNUM **)&BnN, (const BIGNUM **)&BnE, (const BIGNUM **)&BnD);\r
RSA_get0_factors (RsaKey, (const BIGNUM **)&BnP, (const BIGNUM **)&BnQ);\r
RSA_get0_crt_params (RsaKey, (const BIGNUM **)&BnDp, (const BIGNUM **)&BnDq, (const BIGNUM **)&BnQInv);\r
// (N, e) are needed.\r
//\r
switch (KeyTag) {\r
-\r
- //\r
- // RSA Public Modulus (N), Public Exponent (e) and Private Exponent (d)\r
- //\r
- case RsaKeyN:\r
- case RsaKeyE:\r
- case RsaKeyD:\r
- if (BnN == NULL) {\r
- BnN = BN_new ();\r
- }\r
- if (BnE == NULL) {\r
- BnE = BN_new ();\r
- }\r
- if (BnD == NULL) {\r
- BnD = BN_new ();\r
- }\r
-\r
- if ((BnN == NULL) || (BnE == NULL) || (BnD == NULL)) {\r
- return FALSE;\r
- }\r
-\r
- switch (KeyTag) {\r
+ //\r
+ // RSA Public Modulus (N), Public Exponent (e) and Private Exponent (d)\r
+ //\r
case RsaKeyN:\r
- BnN = BN_bin2bn (BigNumber, (UINT32)BnSize, BnN);\r
- break;\r
case RsaKeyE:\r
- BnE = BN_bin2bn (BigNumber, (UINT32)BnSize, BnE);\r
- break;\r
case RsaKeyD:\r
- BnD = BN_bin2bn (BigNumber, (UINT32)BnSize, BnD);\r
- break;\r
- default:\r
- return FALSE;\r
- }\r
- if (RSA_set0_key (RsaKey, BN_dup(BnN), BN_dup(BnE), BN_dup(BnD)) == 0) {\r
- return FALSE;\r
- }\r
+ if (BnN == NULL) {\r
+ BnN = BN_new ();\r
+ }\r
+\r
+ if (BnE == NULL) {\r
+ BnE = BN_new ();\r
+ }\r
+\r
+ if (BnD == NULL) {\r
+ BnD = BN_new ();\r
+ }\r
+\r
+ if ((BnN == NULL) || (BnE == NULL) || (BnD == NULL)) {\r
+ return FALSE;\r
+ }\r
+\r
+ switch (KeyTag) {\r
+ case RsaKeyN:\r
+ BnN = BN_bin2bn (BigNumber, (UINT32)BnSize, BnN);\r
+ break;\r
+ case RsaKeyE:\r
+ BnE = BN_bin2bn (BigNumber, (UINT32)BnSize, BnE);\r
+ break;\r
+ case RsaKeyD:\r
+ BnD = BN_bin2bn (BigNumber, (UINT32)BnSize, BnD);\r
+ break;\r
+ default:\r
+ return FALSE;\r
+ }\r
+\r
+ if (RSA_set0_key (RsaKey, BN_dup (BnN), BN_dup (BnE), BN_dup (BnD)) == 0) {\r
+ return FALSE;\r
+ }\r
\r
- break;\r
-\r
- //\r
- // RSA Secret Prime Factor of Modulus (p and q)\r
- //\r
- case RsaKeyP:\r
- case RsaKeyQ:\r
- if (BnP == NULL) {\r
- BnP = BN_new ();\r
- }\r
- if (BnQ == NULL) {\r
- BnQ = BN_new ();\r
- }\r
- if ((BnP == NULL) || (BnQ == NULL)) {\r
- return FALSE;\r
- }\r
+ break;\r
\r
- switch (KeyTag) {\r
+ //\r
+ // RSA Secret Prime Factor of Modulus (p and q)\r
+ //\r
case RsaKeyP:\r
- BnP = BN_bin2bn (BigNumber, (UINT32)BnSize, BnP);\r
- break;\r
case RsaKeyQ:\r
- BnQ = BN_bin2bn (BigNumber, (UINT32)BnSize, BnQ);\r
- break;\r
- default:\r
- return FALSE;\r
- }\r
- if (RSA_set0_factors (RsaKey, BN_dup(BnP), BN_dup(BnQ)) == 0) {\r
- return FALSE;\r
- }\r
+ if (BnP == NULL) {\r
+ BnP = BN_new ();\r
+ }\r
+\r
+ if (BnQ == NULL) {\r
+ BnQ = BN_new ();\r
+ }\r
+\r
+ if ((BnP == NULL) || (BnQ == NULL)) {\r
+ return FALSE;\r
+ }\r
+\r
+ switch (KeyTag) {\r
+ case RsaKeyP:\r
+ BnP = BN_bin2bn (BigNumber, (UINT32)BnSize, BnP);\r
+ break;\r
+ case RsaKeyQ:\r
+ BnQ = BN_bin2bn (BigNumber, (UINT32)BnSize, BnQ);\r
+ break;\r
+ default:\r
+ return FALSE;\r
+ }\r
+\r
+ if (RSA_set0_factors (RsaKey, BN_dup (BnP), BN_dup (BnQ)) == 0) {\r
+ return FALSE;\r
+ }\r
\r
- break;\r
-\r
- //\r
- // p's CRT Exponent (== d mod (p - 1)), q's CRT Exponent (== d mod (q - 1)),\r
- // and CRT Coefficient (== 1/q mod p)\r
- //\r
- case RsaKeyDp:\r
- case RsaKeyDq:\r
- case RsaKeyQInv:\r
- if (BnDp == NULL) {\r
- BnDp = BN_new ();\r
- }\r
- if (BnDq == NULL) {\r
- BnDq = BN_new ();\r
- }\r
- if (BnQInv == NULL) {\r
- BnQInv = BN_new ();\r
- }\r
- if ((BnDp == NULL) || (BnDq == NULL) || (BnQInv == NULL)) {\r
- return FALSE;\r
- }\r
+ break;\r
\r
- switch (KeyTag) {\r
+ //\r
+ // p's CRT Exponent (== d mod (p - 1)), q's CRT Exponent (== d mod (q - 1)),\r
+ // and CRT Coefficient (== 1/q mod p)\r
+ //\r
case RsaKeyDp:\r
- BnDp = BN_bin2bn (BigNumber, (UINT32)BnSize, BnDp);\r
- break;\r
case RsaKeyDq:\r
- BnDq = BN_bin2bn (BigNumber, (UINT32)BnSize, BnDq);\r
- break;\r
case RsaKeyQInv:\r
- BnQInv = BN_bin2bn (BigNumber, (UINT32)BnSize, BnQInv);\r
+ if (BnDp == NULL) {\r
+ BnDp = BN_new ();\r
+ }\r
+\r
+ if (BnDq == NULL) {\r
+ BnDq = BN_new ();\r
+ }\r
+\r
+ if (BnQInv == NULL) {\r
+ BnQInv = BN_new ();\r
+ }\r
+\r
+ if ((BnDp == NULL) || (BnDq == NULL) || (BnQInv == NULL)) {\r
+ return FALSE;\r
+ }\r
+\r
+ switch (KeyTag) {\r
+ case RsaKeyDp:\r
+ BnDp = BN_bin2bn (BigNumber, (UINT32)BnSize, BnDp);\r
+ break;\r
+ case RsaKeyDq:\r
+ BnDq = BN_bin2bn (BigNumber, (UINT32)BnSize, BnDq);\r
+ break;\r
+ case RsaKeyQInv:\r
+ BnQInv = BN_bin2bn (BigNumber, (UINT32)BnSize, BnQInv);\r
+ break;\r
+ default:\r
+ return FALSE;\r
+ }\r
+\r
+ if (RSA_set0_crt_params (RsaKey, BN_dup (BnDp), BN_dup (BnDq), BN_dup (BnQInv)) == 0) {\r
+ return FALSE;\r
+ }\r
+\r
break;\r
+\r
default:\r
return FALSE;\r
- }\r
- if (RSA_set0_crt_params (RsaKey, BN_dup(BnDp), BN_dup(BnDq), BN_dup(BnQInv)) == 0) {\r
- return FALSE;\r
- }\r
-\r
- break;\r
-\r
- default:\r
- return FALSE;\r
}\r
\r
return TRUE;\r
IN UINTN SigSize\r
)\r
{\r
- INT32 DigestType;\r
- UINT8 *SigBuf;\r
+ INT32 DigestType;\r
+ UINT8 *SigBuf;\r
\r
//\r
// Check input parameters.\r
//\r
- if (RsaContext == NULL || MessageHash == NULL || Signature == NULL) {\r
+ if ((RsaContext == NULL) || (MessageHash == NULL) || (Signature == NULL)) {\r
return FALSE;\r
}\r
\r
- if (SigSize > INT_MAX || SigSize == 0) {\r
+ if ((SigSize > INT_MAX) || (SigSize == 0)) {\r
return FALSE;\r
}\r
\r
// Only MD5, SHA-1, SHA-256, SHA-384 or SHA-512 algorithm is supported.\r
//\r
switch (HashSize) {\r
- case MD5_DIGEST_SIZE:\r
- DigestType = NID_md5;\r
- break;\r
+ case MD5_DIGEST_SIZE:\r
+ DigestType = NID_md5;\r
+ break;\r
\r
- case SHA1_DIGEST_SIZE:\r
- DigestType = NID_sha1;\r
- break;\r
+ case SHA1_DIGEST_SIZE:\r
+ DigestType = NID_sha1;\r
+ break;\r
\r
- case SHA256_DIGEST_SIZE:\r
- DigestType = NID_sha256;\r
- break;\r
+ case SHA256_DIGEST_SIZE:\r
+ DigestType = NID_sha256;\r
+ break;\r
\r
- case SHA384_DIGEST_SIZE:\r
- DigestType = NID_sha384;\r
- break;\r
+ case SHA384_DIGEST_SIZE:\r
+ DigestType = NID_sha384;\r
+ break;\r
\r
- case SHA512_DIGEST_SIZE:\r
- DigestType = NID_sha512;\r
- break;\r
+ case SHA512_DIGEST_SIZE:\r
+ DigestType = NID_sha512;\r
+ break;\r
\r
- default:\r
- return FALSE;\r
+ default:\r
+ return FALSE;\r
}\r
\r
- SigBuf = (UINT8 *) Signature;\r
- return (BOOLEAN) RSA_verify (\r
- DigestType,\r
- MessageHash,\r
- (UINT32) HashSize,\r
- SigBuf,\r
- (UINT32) SigSize,\r
- (RSA *) RsaContext\r
- );\r
+ SigBuf = (UINT8 *)Signature;\r
+ return (BOOLEAN)RSA_verify (\r
+ DigestType,\r
+ MessageHash,\r
+ (UINT32)HashSize,\r
+ SigBuf,\r
+ (UINT32)SigSize,\r
+ (RSA *)RsaContext\r
+ );\r
}\r
IN OUT UINTN *BnSize\r
)\r
{\r
- RSA *RsaKey;\r
- BIGNUM *BnKey;\r
- UINTN Size;\r
+ RSA *RsaKey;\r
+ BIGNUM *BnKey;\r
+ UINTN Size;\r
\r
//\r
// Check input parameters.\r
//\r
- if (RsaContext == NULL || BnSize == NULL) {\r
+ if ((RsaContext == NULL) || (BnSize == NULL)) {\r
return FALSE;\r
}\r
\r
- RsaKey = (RSA *) RsaContext;\r
+ RsaKey = (RSA *)RsaContext;\r
Size = *BnSize;\r
*BnSize = 0;\r
BnKey = NULL;\r
\r
switch (KeyTag) {\r
-\r
- //\r
- // RSA Public Modulus (N)\r
- //\r
- case RsaKeyN:\r
- RSA_get0_key (RsaKey, (const BIGNUM **)&BnKey, NULL, NULL);\r
- break;\r
-\r
- //\r
- // RSA Public Exponent (e)\r
- //\r
- case RsaKeyE:\r
- RSA_get0_key (RsaKey, NULL, (const BIGNUM **)&BnKey, NULL);\r
- break;\r
-\r
- //\r
- // RSA Private Exponent (d)\r
- //\r
- case RsaKeyD:\r
- RSA_get0_key (RsaKey, NULL, NULL, (const BIGNUM **)&BnKey);\r
- break;\r
-\r
- //\r
- // RSA Secret Prime Factor of Modulus (p)\r
- //\r
- case RsaKeyP:\r
- RSA_get0_factors (RsaKey, (const BIGNUM **)&BnKey, NULL);\r
- break;\r
-\r
- //\r
- // RSA Secret Prime Factor of Modules (q)\r
- //\r
- case RsaKeyQ:\r
- RSA_get0_factors (RsaKey, NULL, (const BIGNUM **)&BnKey);\r
- break;\r
-\r
- //\r
- // p's CRT Exponent (== d mod (p - 1))\r
- //\r
- case RsaKeyDp:\r
- RSA_get0_crt_params (RsaKey, (const BIGNUM **)&BnKey, NULL, NULL);\r
- break;\r
-\r
- //\r
- // q's CRT Exponent (== d mod (q - 1))\r
- //\r
- case RsaKeyDq:\r
- RSA_get0_crt_params (RsaKey, NULL, (const BIGNUM **)&BnKey, NULL);\r
- break;\r
-\r
- //\r
- // The CRT Coefficient (== 1/q mod p)\r
- //\r
- case RsaKeyQInv:\r
- RSA_get0_crt_params (RsaKey, NULL, NULL, (const BIGNUM **)&BnKey);\r
- break;\r
-\r
- default:\r
- return FALSE;\r
+ //\r
+ // RSA Public Modulus (N)\r
+ //\r
+ case RsaKeyN:\r
+ RSA_get0_key (RsaKey, (const BIGNUM **)&BnKey, NULL, NULL);\r
+ break;\r
+\r
+ //\r
+ // RSA Public Exponent (e)\r
+ //\r
+ case RsaKeyE:\r
+ RSA_get0_key (RsaKey, NULL, (const BIGNUM **)&BnKey, NULL);\r
+ break;\r
+\r
+ //\r
+ // RSA Private Exponent (d)\r
+ //\r
+ case RsaKeyD:\r
+ RSA_get0_key (RsaKey, NULL, NULL, (const BIGNUM **)&BnKey);\r
+ break;\r
+\r
+ //\r
+ // RSA Secret Prime Factor of Modulus (p)\r
+ //\r
+ case RsaKeyP:\r
+ RSA_get0_factors (RsaKey, (const BIGNUM **)&BnKey, NULL);\r
+ break;\r
+\r
+ //\r
+ // RSA Secret Prime Factor of Modules (q)\r
+ //\r
+ case RsaKeyQ:\r
+ RSA_get0_factors (RsaKey, NULL, (const BIGNUM **)&BnKey);\r
+ break;\r
+\r
+ //\r
+ // p's CRT Exponent (== d mod (p - 1))\r
+ //\r
+ case RsaKeyDp:\r
+ RSA_get0_crt_params (RsaKey, (const BIGNUM **)&BnKey, NULL, NULL);\r
+ break;\r
+\r
+ //\r
+ // q's CRT Exponent (== d mod (q - 1))\r
+ //\r
+ case RsaKeyDq:\r
+ RSA_get0_crt_params (RsaKey, NULL, (const BIGNUM **)&BnKey, NULL);\r
+ break;\r
+\r
+ //\r
+ // The CRT Coefficient (== 1/q mod p)\r
+ //\r
+ case RsaKeyQInv:\r
+ RSA_get0_crt_params (RsaKey, NULL, NULL, (const BIGNUM **)&BnKey);\r
+ break;\r
+\r
+ default:\r
+ return FALSE;\r
}\r
\r
if (BnKey == NULL) {\r
*BnSize = Size;\r
return TRUE;\r
}\r
- *BnSize = BN_bn2bin (BnKey, BigNumber) ;\r
+\r
+ *BnSize = BN_bn2bin (BnKey, BigNumber);\r
\r
return TRUE;\r
}\r
//\r
// Check input parameters.\r
//\r
- if (RsaContext == NULL || ModulusLength > INT_MAX || PublicExponentSize > INT_MAX) {\r
+ if ((RsaContext == NULL) || (ModulusLength > INT_MAX) || (PublicExponentSize > INT_MAX)) {\r
return FALSE;\r
}\r
\r
goto _Exit;\r
}\r
} else {\r
- if (BN_bin2bn (PublicExponent, (UINT32) PublicExponentSize, KeyE) == NULL) {\r
+ if (BN_bin2bn (PublicExponent, (UINT32)PublicExponentSize, KeyE) == NULL) {\r
goto _Exit;\r
}\r
}\r
\r
- if (RSA_generate_key_ex ((RSA *) RsaContext, (UINT32) ModulusLength, KeyE, NULL) == 1) {\r
- RetVal = TRUE;\r
+ if (RSA_generate_key_ex ((RSA *)RsaContext, (UINT32)ModulusLength, KeyE, NULL) == 1) {\r
+ RetVal = TRUE;\r
}\r
\r
_Exit:\r
return FALSE;\r
}\r
\r
- if (RSA_check_key ((RSA *) RsaContext) != 1) {\r
+ if (RSA_check_key ((RSA *)RsaContext) != 1) {\r
Reason = ERR_GET_REASON (ERR_peek_last_error ());\r
- if (Reason == RSA_R_P_NOT_PRIME ||\r
- Reason == RSA_R_Q_NOT_PRIME ||\r
- Reason == RSA_R_N_DOES_NOT_EQUAL_P_Q ||\r
- Reason == RSA_R_D_E_NOT_CONGRUENT_TO_1) {\r
+ if ((Reason == RSA_R_P_NOT_PRIME) ||\r
+ (Reason == RSA_R_Q_NOT_PRIME) ||\r
+ (Reason == RSA_R_N_DOES_NOT_EQUAL_P_Q) ||\r
+ (Reason == RSA_R_D_E_NOT_CONGRUENT_TO_1))\r
+ {\r
return FALSE;\r
}\r
}\r
IN OUT UINTN *SigSize\r
)\r
{\r
- RSA *Rsa;\r
- UINTN Size;\r
- INT32 DigestType;\r
+ RSA *Rsa;\r
+ UINTN Size;\r
+ INT32 DigestType;\r
\r
//\r
// Check input parameters.\r
//\r
- if (RsaContext == NULL || MessageHash == NULL) {\r
+ if ((RsaContext == NULL) || (MessageHash == NULL)) {\r
return FALSE;\r
}\r
\r
- Rsa = (RSA *) RsaContext;\r
+ Rsa = (RSA *)RsaContext;\r
Size = RSA_size (Rsa);\r
\r
if (*SigSize < Size) {\r
// Only MD5, SHA-1, SHA-256, SHA-384 or SHA-512 algorithm is supported.\r
//\r
switch (HashSize) {\r
- case MD5_DIGEST_SIZE:\r
- DigestType = NID_md5;\r
- break;\r
+ case MD5_DIGEST_SIZE:\r
+ DigestType = NID_md5;\r
+ break;\r
\r
- case SHA1_DIGEST_SIZE:\r
- DigestType = NID_sha1;\r
- break;\r
+ case SHA1_DIGEST_SIZE:\r
+ DigestType = NID_sha1;\r
+ break;\r
\r
- case SHA256_DIGEST_SIZE:\r
- DigestType = NID_sha256;\r
- break;\r
+ case SHA256_DIGEST_SIZE:\r
+ DigestType = NID_sha256;\r
+ break;\r
\r
- case SHA384_DIGEST_SIZE:\r
- DigestType = NID_sha384;\r
- break;\r
+ case SHA384_DIGEST_SIZE:\r
+ DigestType = NID_sha384;\r
+ break;\r
\r
- case SHA512_DIGEST_SIZE:\r
- DigestType = NID_sha512;\r
- break;\r
+ case SHA512_DIGEST_SIZE:\r
+ DigestType = NID_sha512;\r
+ break;\r
\r
- default:\r
- return FALSE;\r
+ default:\r
+ return FALSE;\r
}\r
\r
- return (BOOLEAN) RSA_sign (\r
- DigestType,\r
- MessageHash,\r
- (UINT32) HashSize,\r
- Signature,\r
- (UINT32 *) SigSize,\r
- (RSA *) RsaContext\r
- );\r
+ return (BOOLEAN)RSA_sign (\r
+ DigestType,\r
+ MessageHash,\r
+ (UINT32)HashSize,\r
+ Signature,\r
+ (UINT32 *)SigSize,\r
+ (RSA *)RsaContext\r
+ );\r
}\r
ASSERT (FALSE);\r
return FALSE;\r
}\r
-\r
-\r
#include <openssl/objects.h>\r
#include <openssl/evp.h>\r
\r
-\r
/**\r
Retrieve a pointer to EVP message digest object.\r
\r
**/\r
STATIC\r
const\r
-EVP_MD*\r
+EVP_MD *\r
GetEvpMD (\r
- IN UINT16 DigestLen\r
+ IN UINT16 DigestLen\r
)\r
{\r
- switch (DigestLen){\r
+ switch (DigestLen) {\r
case SHA256_DIGEST_SIZE:\r
- return EVP_sha256();\r
+ return EVP_sha256 ();\r
break;\r
case SHA384_DIGEST_SIZE:\r
- return EVP_sha384();\r
+ return EVP_sha384 ();\r
break;\r
case SHA512_DIGEST_SIZE:\r
- return EVP_sha512();\r
+ return EVP_sha512 ();\r
break;\r
default:\r
return NULL;\r
}\r
}\r
\r
-\r
/**\r
Verifies the RSA signature with RSASSA-PSS signature scheme defined in RFC 8017.\r
Implementation determines salt length automatically from the signature encoding.\r
IN UINT16 SaltLen\r
)\r
{\r
- BOOLEAN Result;\r
- EVP_PKEY *EvpRsaKey;\r
- EVP_MD_CTX *EvpVerifyCtx;\r
- EVP_PKEY_CTX *KeyCtx;\r
+ BOOLEAN Result;\r
+ EVP_PKEY *EvpRsaKey;\r
+ EVP_MD_CTX *EvpVerifyCtx;\r
+ EVP_PKEY_CTX *KeyCtx;\r
CONST EVP_MD *HashAlg;\r
\r
- Result = FALSE;\r
- EvpRsaKey = NULL;\r
+ Result = FALSE;\r
+ EvpRsaKey = NULL;\r
EvpVerifyCtx = NULL;\r
- KeyCtx = NULL;\r
- HashAlg = NULL;\r
+ KeyCtx = NULL;\r
+ HashAlg = NULL;\r
\r
if (RsaContext == NULL) {\r
return FALSE;\r
}\r
- if (Message == NULL || MsgSize == 0 || MsgSize > INT_MAX) {\r
+\r
+ if ((Message == NULL) || (MsgSize == 0) || (MsgSize > INT_MAX)) {\r
return FALSE;\r
}\r
- if (Signature == NULL || SigSize == 0 || SigSize > INT_MAX) {\r
+\r
+ if ((Signature == NULL) || (SigSize == 0) || (SigSize > INT_MAX)) {\r
return FALSE;\r
}\r
+\r
if (SaltLen != DigestLen) {\r
return FALSE;\r
}\r
\r
- HashAlg = GetEvpMD(DigestLen);\r
+ HashAlg = GetEvpMD (DigestLen);\r
\r
if (HashAlg == NULL) {\r
return FALSE;\r
}\r
\r
- EvpRsaKey = EVP_PKEY_new();\r
+ EvpRsaKey = EVP_PKEY_new ();\r
if (EvpRsaKey == NULL) {\r
goto _Exit;\r
}\r
\r
- EVP_PKEY_set1_RSA(EvpRsaKey, RsaContext);\r
+ EVP_PKEY_set1_RSA (EvpRsaKey, RsaContext);\r
\r
- EvpVerifyCtx = EVP_MD_CTX_create();\r
+ EvpVerifyCtx = EVP_MD_CTX_create ();\r
if (EvpVerifyCtx == NULL) {\r
goto _Exit;\r
}\r
\r
- Result = EVP_DigestVerifyInit(EvpVerifyCtx, &KeyCtx, HashAlg, NULL, EvpRsaKey) > 0;\r
+ Result = EVP_DigestVerifyInit (EvpVerifyCtx, &KeyCtx, HashAlg, NULL, EvpRsaKey) > 0;\r
if (KeyCtx == NULL) {\r
goto _Exit;\r
}\r
\r
if (Result) {\r
- Result = EVP_PKEY_CTX_set_rsa_padding(KeyCtx, RSA_PKCS1_PSS_PADDING) > 0;\r
+ Result = EVP_PKEY_CTX_set_rsa_padding (KeyCtx, RSA_PKCS1_PSS_PADDING) > 0;\r
}\r
+\r
if (Result) {\r
- Result = EVP_PKEY_CTX_set_rsa_pss_saltlen(KeyCtx, SaltLen) > 0;\r
+ Result = EVP_PKEY_CTX_set_rsa_pss_saltlen (KeyCtx, SaltLen) > 0;\r
}\r
+\r
if (Result) {\r
- Result = EVP_PKEY_CTX_set_rsa_mgf1_md(KeyCtx, HashAlg) > 0;\r
+ Result = EVP_PKEY_CTX_set_rsa_mgf1_md (KeyCtx, HashAlg) > 0;\r
}\r
+\r
if (Result) {\r
- Result = EVP_DigestVerifyUpdate(EvpVerifyCtx, Message, (UINT32)MsgSize) > 0;\r
+ Result = EVP_DigestVerifyUpdate (EvpVerifyCtx, Message, (UINT32)MsgSize) > 0;\r
}\r
+\r
if (Result) {\r
- Result = EVP_DigestVerifyFinal(EvpVerifyCtx, Signature, (UINT32)SigSize) > 0;\r
+ Result = EVP_DigestVerifyFinal (EvpVerifyCtx, Signature, (UINT32)SigSize) > 0;\r
}\r
\r
-_Exit :\r
+_Exit:\r
if (EvpRsaKey != NULL) {\r
- EVP_PKEY_free(EvpRsaKey);\r
+ EVP_PKEY_free (EvpRsaKey);\r
}\r
+\r
if (EvpVerifyCtx != NULL) {\r
- EVP_MD_CTX_destroy(EvpVerifyCtx);\r
+ EVP_MD_CTX_destroy (EvpVerifyCtx);\r
}\r
\r
return Result;\r
#include <openssl/objects.h>\r
#include <openssl/evp.h>\r
\r
-\r
/**\r
Retrieve a pointer to EVP message digest object.\r
\r
**/\r
STATIC\r
const\r
-EVP_MD*\r
+EVP_MD *\r
GetEvpMD (\r
- IN UINT16 DigestLen\r
+ IN UINT16 DigestLen\r
)\r
{\r
- switch (DigestLen){\r
+ switch (DigestLen) {\r
case SHA256_DIGEST_SIZE:\r
- return EVP_sha256();\r
+ return EVP_sha256 ();\r
break;\r
case SHA384_DIGEST_SIZE:\r
- return EVP_sha384();\r
+ return EVP_sha384 ();\r
break;\r
case SHA512_DIGEST_SIZE:\r
- return EVP_sha512();\r
+ return EVP_sha512 ();\r
break;\r
default:\r
return NULL;\r
}\r
}\r
\r
-\r
/**\r
Carries out the RSA-SSA signature generation with EMSA-PSS encoding scheme.\r
\r
IN OUT UINTN *SigSize\r
)\r
{\r
- BOOLEAN Result;\r
- UINTN RsaSigSize;\r
- EVP_PKEY *EvpRsaKey;\r
- EVP_MD_CTX *EvpVerifyCtx;\r
- EVP_PKEY_CTX *KeyCtx;\r
- CONST EVP_MD *HashAlg;\r
-\r
- Result = FALSE;\r
- EvpRsaKey = NULL;\r
+ BOOLEAN Result;\r
+ UINTN RsaSigSize;\r
+ EVP_PKEY *EvpRsaKey;\r
+ EVP_MD_CTX *EvpVerifyCtx;\r
+ EVP_PKEY_CTX *KeyCtx;\r
+ CONST EVP_MD *HashAlg;\r
+\r
+ Result = FALSE;\r
+ EvpRsaKey = NULL;\r
EvpVerifyCtx = NULL;\r
- KeyCtx = NULL;\r
- HashAlg = NULL;\r
+ KeyCtx = NULL;\r
+ HashAlg = NULL;\r
\r
if (RsaContext == NULL) {\r
return FALSE;\r
}\r
- if (Message == NULL || MsgSize == 0 || MsgSize > INT_MAX) {\r
+\r
+ if ((Message == NULL) || (MsgSize == 0) || (MsgSize > INT_MAX)) {\r
return FALSE;\r
}\r
\r
return FALSE;\r
}\r
\r
- HashAlg = GetEvpMD(DigestLen);\r
+ HashAlg = GetEvpMD (DigestLen);\r
\r
if (HashAlg == NULL) {\r
return FALSE;\r
}\r
\r
- EvpRsaKey = EVP_PKEY_new();\r
+ EvpRsaKey = EVP_PKEY_new ();\r
if (EvpRsaKey == NULL) {\r
goto _Exit;\r
}\r
\r
- EVP_PKEY_set1_RSA(EvpRsaKey, RsaContext);\r
+ EVP_PKEY_set1_RSA (EvpRsaKey, RsaContext);\r
\r
- EvpVerifyCtx = EVP_MD_CTX_create();\r
+ EvpVerifyCtx = EVP_MD_CTX_create ();\r
if (EvpVerifyCtx == NULL) {\r
goto _Exit;\r
}\r
\r
- Result = EVP_DigestSignInit(EvpVerifyCtx, &KeyCtx, HashAlg, NULL, EvpRsaKey) > 0;\r
+ Result = EVP_DigestSignInit (EvpVerifyCtx, &KeyCtx, HashAlg, NULL, EvpRsaKey) > 0;\r
if (KeyCtx == NULL) {\r
goto _Exit;\r
}\r
\r
if (Result) {\r
- Result = EVP_PKEY_CTX_set_rsa_padding(KeyCtx, RSA_PKCS1_PSS_PADDING) > 0;\r
+ Result = EVP_PKEY_CTX_set_rsa_padding (KeyCtx, RSA_PKCS1_PSS_PADDING) > 0;\r
}\r
+\r
if (Result) {\r
- Result = EVP_PKEY_CTX_set_rsa_pss_saltlen(KeyCtx, SaltLen) > 0;\r
+ Result = EVP_PKEY_CTX_set_rsa_pss_saltlen (KeyCtx, SaltLen) > 0;\r
}\r
+\r
if (Result) {\r
- Result = EVP_PKEY_CTX_set_rsa_mgf1_md(KeyCtx, HashAlg) > 0;\r
+ Result = EVP_PKEY_CTX_set_rsa_mgf1_md (KeyCtx, HashAlg) > 0;\r
}\r
+\r
if (Result) {\r
- Result = EVP_DigestSignUpdate(EvpVerifyCtx, Message, (UINT32)MsgSize) > 0;\r
+ Result = EVP_DigestSignUpdate (EvpVerifyCtx, Message, (UINT32)MsgSize) > 0;\r
}\r
+\r
if (Result) {\r
- Result = EVP_DigestSignFinal(EvpVerifyCtx, Signature, SigSize) > 0;\r
+ Result = EVP_DigestSignFinal (EvpVerifyCtx, Signature, SigSize) > 0;\r
}\r
\r
-_Exit :\r
+_Exit:\r
if (EvpRsaKey != NULL) {\r
- EVP_PKEY_free(EvpRsaKey);\r
+ EVP_PKEY_free (EvpRsaKey);\r
}\r
+\r
if (EvpVerifyCtx != NULL) {\r
- EVP_MD_CTX_destroy(EvpVerifyCtx);\r
+ EVP_MD_CTX_destroy (EvpVerifyCtx);\r
}\r
\r
return Result;\r
//\r
// OID ASN.1 Value for SPC_RFC3161_OBJID ("1.3.6.1.4.1.311.3.3.1")\r
//\r
-UINT8 mSpcRFC3161OidValue[] = {\r
+UINT8 mSpcRFC3161OidValue[] = {\r
0x2b, 0x06, 0x01, 0x04, 0x01, 0x82, 0x37, 0x03, 0x03, 0x01\r
- };\r
+};\r
\r
///\r
/// The messageImprint field SHOULD contain the hash of the datum to be\r
/// hashedMessage OCTET STRING }\r
///\r
typedef struct {\r
- X509_ALGOR *HashAlgorithm;\r
- ASN1_OCTET_STRING *HashedMessage;\r
+ X509_ALGOR *HashAlgorithm;\r
+ ASN1_OCTET_STRING *HashedMessage;\r
} TS_MESSAGE_IMPRINT;\r
\r
//\r
/// micros [1] INTEGER (1..999) OPTIONAL }\r
///\r
typedef struct {\r
- ASN1_INTEGER *Seconds;\r
- ASN1_INTEGER *Millis;\r
- ASN1_INTEGER *Micros;\r
+ ASN1_INTEGER *Seconds;\r
+ ASN1_INTEGER *Millis;\r
+ ASN1_INTEGER *Micros;\r
} TS_ACCURACY;\r
\r
//\r
//\r
DECLARE_ASN1_FUNCTIONS (TS_ACCURACY)\r
ASN1_SEQUENCE (TS_ACCURACY) = {\r
- ASN1_OPT (TS_ACCURACY, Seconds, ASN1_INTEGER),\r
+ ASN1_OPT (TS_ACCURACY, Seconds, ASN1_INTEGER),\r
ASN1_IMP_OPT (TS_ACCURACY, Millis, ASN1_INTEGER, 0),\r
ASN1_IMP_OPT (TS_ACCURACY, Micros, ASN1_INTEGER, 1)\r
} ASN1_SEQUENCE_END (TS_ACCURACY)\r
/// extensions [1] IMPLICIT Extensions OPTIONAL }\r
///\r
typedef struct {\r
- ASN1_INTEGER *Version;\r
- ASN1_OBJECT *Policy;\r
- TS_MESSAGE_IMPRINT *MessageImprint;\r
- ASN1_INTEGER *SerialNumber;\r
- ASN1_GENERALIZEDTIME *GenTime;\r
- TS_ACCURACY *Accuracy;\r
- ASN1_BOOLEAN Ordering;\r
- ASN1_INTEGER *Nonce;\r
- GENERAL_NAME *Tsa;\r
- STACK_OF(X509_EXTENSION) *Extensions;\r
+ ASN1_INTEGER *Version;\r
+ ASN1_OBJECT *Policy;\r
+ TS_MESSAGE_IMPRINT *MessageImprint;\r
+ ASN1_INTEGER *SerialNumber;\r
+ ASN1_GENERALIZEDTIME *GenTime;\r
+ TS_ACCURACY *Accuracy;\r
+ ASN1_BOOLEAN Ordering;\r
+ ASN1_INTEGER *Nonce;\r
+ GENERAL_NAME *Tsa;\r
+ STACK_OF (X509_EXTENSION) *Extensions;\r
} TS_TST_INFO;\r
\r
//\r
//\r
DECLARE_ASN1_FUNCTIONS (TS_TST_INFO)\r
ASN1_SEQUENCE (TS_TST_INFO) = {\r
- ASN1_SIMPLE (TS_TST_INFO, Version, ASN1_INTEGER),\r
- ASN1_SIMPLE (TS_TST_INFO, Policy, ASN1_OBJECT),\r
- ASN1_SIMPLE (TS_TST_INFO, MessageImprint, TS_MESSAGE_IMPRINT),\r
- ASN1_SIMPLE (TS_TST_INFO, SerialNumber, ASN1_INTEGER),\r
- ASN1_SIMPLE (TS_TST_INFO, GenTime, ASN1_GENERALIZEDTIME),\r
- ASN1_OPT (TS_TST_INFO, Accuracy, TS_ACCURACY),\r
- ASN1_OPT (TS_TST_INFO, Ordering, ASN1_FBOOLEAN),\r
- ASN1_OPT (TS_TST_INFO, Nonce, ASN1_INTEGER),\r
- ASN1_EXP_OPT(TS_TST_INFO, Tsa, GENERAL_NAME, 0),\r
- ASN1_IMP_SEQUENCE_OF_OPT (TS_TST_INFO, Extensions, X509_EXTENSION, 1)\r
+ ASN1_SIMPLE (TS_TST_INFO, Version, ASN1_INTEGER),\r
+ ASN1_SIMPLE (TS_TST_INFO, Policy, ASN1_OBJECT),\r
+ ASN1_SIMPLE (TS_TST_INFO, MessageImprint, TS_MESSAGE_IMPRINT),\r
+ ASN1_SIMPLE (TS_TST_INFO, SerialNumber, ASN1_INTEGER),\r
+ ASN1_SIMPLE (TS_TST_INFO, GenTime, ASN1_GENERALIZEDTIME),\r
+ ASN1_OPT (TS_TST_INFO, Accuracy, TS_ACCURACY),\r
+ ASN1_OPT (TS_TST_INFO, Ordering, ASN1_FBOOLEAN),\r
+ ASN1_OPT (TS_TST_INFO, Nonce, ASN1_INTEGER),\r
+ ASN1_EXP_OPT (TS_TST_INFO, Tsa, GENERAL_NAME, 0),\r
+ ASN1_IMP_SEQUENCE_OF_OPT (TS_TST_INFO, Extensions, X509_EXTENSION, 1)\r
} ASN1_SEQUENCE_END (TS_TST_INFO)\r
IMPLEMENT_ASN1_FUNCTIONS (TS_TST_INFO)\r
\r
-\r
/**\r
Convert ASN.1 GeneralizedTime to EFI Time.\r
\r
return FALSE;\r
}\r
\r
- Str = (CONST CHAR8*)Asn1Time->data;\r
+ Str = (CONST CHAR8 *)Asn1Time->data;\r
SetMem (EfiTime, sizeof (EFI_TIME), 0);\r
\r
Index = 0;\r
- if (Asn1Time->type == V_ASN1_UTCTIME) { /* two digit year */\r
+ if (Asn1Time->type == V_ASN1_UTCTIME) {\r
+ /* two digit year */\r
EfiTime->Year = (Str[Index++] - '0') * 10;\r
EfiTime->Year += (Str[Index++] - '0');\r
if (EfiTime->Year < 70) {\r
EfiTime->Year += 100;\r
}\r
- } else if (Asn1Time->type == V_ASN1_GENERALIZEDTIME) { /* four digit year */\r
+ } else if (Asn1Time->type == V_ASN1_GENERALIZEDTIME) {\r
+ /* four digit year */\r
EfiTime->Year = (Str[Index++] - '0') * 1000;\r
EfiTime->Year += (Str[Index++] - '0') * 100;\r
EfiTime->Year += (Str[Index++] - '0') * 10;\r
}\r
}\r
\r
- EfiTime->Month = (Str[Index++] - '0') * 10;\r
- EfiTime->Month += (Str[Index++] - '0');\r
+ EfiTime->Month = (Str[Index++] - '0') * 10;\r
+ EfiTime->Month += (Str[Index++] - '0');\r
if ((EfiTime->Month < 1) || (EfiTime->Month > 12)) {\r
return FALSE;\r
}\r
\r
- EfiTime->Day = (Str[Index++] - '0') * 10;\r
- EfiTime->Day += (Str[Index++] - '0');\r
+ EfiTime->Day = (Str[Index++] - '0') * 10;\r
+ EfiTime->Day += (Str[Index++] - '0');\r
if ((EfiTime->Day < 1) || (EfiTime->Day > 31)) {\r
return FALSE;\r
}\r
\r
- EfiTime->Hour = (Str[Index++] - '0') * 10;\r
- EfiTime->Hour += (Str[Index++] - '0');\r
+ EfiTime->Hour = (Str[Index++] - '0') * 10;\r
+ EfiTime->Hour += (Str[Index++] - '0');\r
if (EfiTime->Hour > 23) {\r
return FALSE;\r
}\r
goto _Exit;\r
}\r
\r
- MdSize = EVP_MD_size (Md);\r
+ MdSize = EVP_MD_size (Md);\r
HashedMsg = AllocateZeroPool (MdSize);\r
if (HashedMsg == NULL) {\r
goto _Exit;\r
}\r
+\r
MdCtx = EVP_MD_CTX_new ();\r
if (MdCtx == NULL) {\r
goto _Exit;\r
}\r
+\r
if ((EVP_DigestInit_ex (MdCtx, Md, NULL) != 1) ||\r
(EVP_DigestUpdate (MdCtx, TimestampedData, DataSize) != 1) ||\r
- (EVP_DigestFinal (MdCtx, HashedMsg, NULL) != 1)) {\r
+ (EVP_DigestFinal (MdCtx, HashedMsg, NULL) != 1))\r
+ {\r
goto _Exit;\r
}\r
+\r
if ((MdSize == (UINTN)ASN1_STRING_length (Imprint->HashedMessage)) &&\r
- (CompareMem (HashedMsg, ASN1_STRING_get0_data (Imprint->HashedMessage), MdSize) != 0)) {\r
+ (CompareMem (HashedMsg, ASN1_STRING_get0_data (Imprint->HashedMessage), MdSize) != 0))\r
+ {\r
goto _Exit;\r
}\r
\r
// Check input parameters\r
//\r
if ((TSToken == NULL) || (TsaCert == NULL) || (TimestampedData == NULL) ||\r
- (TokenSize > INT_MAX) || (CertSize > INT_MAX) || (DataSize > INT_MAX)) {\r
+ (TokenSize > INT_MAX) || (CertSize > INT_MAX) || (DataSize > INT_MAX))\r
+ {\r
return FALSE;\r
}\r
\r
if (SigningTime != NULL) {\r
SetMem (SigningTime, sizeof (EFI_TIME), 0);\r
}\r
+\r
Pkcs7 = NULL;\r
Cert = NULL;\r
CertStore = NULL;\r
// TimeStamp Token should contain one valid DER-encoded ASN.1 PKCS#7 structure.\r
//\r
TokenTemp = TSToken;\r
- Pkcs7 = d2i_PKCS7 (NULL, (const unsigned char **) &TokenTemp, (int) TokenSize);\r
+ Pkcs7 = d2i_PKCS7 (NULL, (const unsigned char **)&TokenTemp, (int)TokenSize);\r
if (Pkcs7 == NULL) {\r
goto _Exit;\r
}\r
// Read the trusted TSA certificate (DER-encoded), and Construct X509 Certificate.\r
//\r
CertTemp = TsaCert;\r
- Cert = d2i_X509 (NULL, &CertTemp, (long) CertSize);\r
+ Cert = d2i_X509 (NULL, &CertTemp, (long)CertSize);\r
if (Cert == NULL) {\r
goto _Exit;\r
}\r
// Allow partial certificate chains, terminated by a non-self-signed but\r
// still trusted intermediate certificate. Also disable time checks.\r
//\r
- X509_STORE_set_flags (CertStore,\r
- X509_V_FLAG_PARTIAL_CHAIN | X509_V_FLAG_NO_CHECK_TIME);\r
+ X509_STORE_set_flags (\r
+ CertStore,\r
+ X509_V_FLAG_PARTIAL_CHAIN | X509_V_FLAG_NO_CHECK_TIME\r
+ );\r
\r
X509_STORE_set_purpose (CertStore, X509_PURPOSE_ANY);\r
\r
if (OutBio == NULL) {\r
goto _Exit;\r
}\r
+\r
if (!PKCS7_verify (Pkcs7, NULL, CertStore, NULL, OutBio, PKCS7_BINARY)) {\r
goto _Exit;\r
}\r
if (TstData == NULL) {\r
goto _Exit;\r
}\r
- TstSize = BIO_read (OutBio, (void *) TstData, 2048);\r
+\r
+ TstSize = BIO_read (OutBio, (void *)TstData, 2048);\r
\r
//\r
// Construct TS_TST_INFO structure from the signed contents.\r
//\r
TstTemp = TstData;\r
- TstInfo = d2i_TS_TST_INFO (NULL, (const unsigned char **) &TstTemp,\r
- (int)TstSize);\r
+ TstInfo = d2i_TS_TST_INFO (\r
+ NULL,\r
+ (const unsigned char **)&TstTemp,\r
+ (int)TstSize\r
+ );\r
if (TstInfo == NULL) {\r
goto _Exit;\r
}\r
OUT EFI_TIME *SigningTime\r
)\r
{\r
- BOOLEAN Status;\r
- PKCS7 *Pkcs7;\r
- CONST UINT8 *Temp;\r
- STACK_OF(PKCS7_SIGNER_INFO) *SignerInfos;\r
- PKCS7_SIGNER_INFO *SignInfo;\r
- UINTN Index;\r
- STACK_OF(X509_ATTRIBUTE) *Sk;\r
- X509_ATTRIBUTE *Xa;\r
- ASN1_OBJECT *XaObj;\r
- ASN1_TYPE *Asn1Type;\r
- ASN1_OCTET_STRING *EncDigest;\r
- UINT8 *TSToken;\r
- UINTN TokenSize;\r
+ BOOLEAN Status;\r
+ PKCS7 *Pkcs7;\r
+ CONST UINT8 *Temp;\r
+\r
+ STACK_OF (PKCS7_SIGNER_INFO) *SignerInfos;\r
+ PKCS7_SIGNER_INFO *SignInfo;\r
+ UINTN Index;\r
+\r
+ STACK_OF (X509_ATTRIBUTE) *Sk;\r
+ X509_ATTRIBUTE *Xa;\r
+ ASN1_OBJECT *XaObj;\r
+ ASN1_TYPE *Asn1Type;\r
+ ASN1_OCTET_STRING *EncDigest;\r
+ UINT8 *TSToken;\r
+ UINTN TokenSize;\r
\r
//\r
// Input Parameters Checking.\r
// Register & Initialize necessary digest algorithms for PKCS#7 Handling.\r
//\r
if ((EVP_add_digest (EVP_md5 ()) == 0) || (EVP_add_digest (EVP_sha1 ()) == 0) ||\r
- (EVP_add_digest (EVP_sha256 ()) == 0) || (EVP_add_digest_alias (SN_sha1WithRSAEncryption, SN_sha1WithRSA)) == 0) {\r
+ (EVP_add_digest (EVP_sha256 ()) == 0) || ((EVP_add_digest_alias (SN_sha1WithRSAEncryption, SN_sha1WithRSA)) == 0))\r
+ {\r
return FALSE;\r
}\r
\r
//\r
// Initialization.\r
//\r
- Status = FALSE;\r
- Pkcs7 = NULL;\r
- SignInfo = NULL;\r
+ Status = FALSE;\r
+ Pkcs7 = NULL;\r
+ SignInfo = NULL;\r
\r
//\r
// Decode ASN.1-encoded Authenticode data into PKCS7 structure.\r
//\r
Temp = AuthData;\r
- Pkcs7 = d2i_PKCS7 (NULL, (const unsigned char **) &Temp, (int) DataSize);\r
+ Pkcs7 = d2i_PKCS7 (NULL, (const unsigned char **)&Temp, (int)DataSize);\r
if (Pkcs7 == NULL) {\r
goto _Exit;\r
}\r
// of SignerInfo.\r
//\r
Sk = SignInfo->unauth_attr;\r
- if (Sk == NULL) { // No timestamp counterSignature.\r
+ if (Sk == NULL) {\r
+ // No timestamp counterSignature.\r
goto _Exit;\r
}\r
\r
Asn1Type = NULL;\r
- for (Index = 0; Index < (UINTN) sk_X509_ATTRIBUTE_num (Sk); Index++) {\r
+ for (Index = 0; Index < (UINTN)sk_X509_ATTRIBUTE_num (Sk); Index++) {\r
//\r
// Search valid RFC3161 timestamp counterSignature based on OBJID.\r
//\r
if (Xa == NULL) {\r
continue;\r
}\r
- XaObj = X509_ATTRIBUTE_get0_object(Xa);\r
+\r
+ XaObj = X509_ATTRIBUTE_get0_object (Xa);\r
if (XaObj == NULL) {\r
continue;\r
}\r
- if ((OBJ_length(XaObj) != sizeof (mSpcRFC3161OidValue)) ||\r
- (CompareMem (OBJ_get0_data(XaObj), mSpcRFC3161OidValue, sizeof (mSpcRFC3161OidValue)) != 0)) {\r
+\r
+ if ((OBJ_length (XaObj) != sizeof (mSpcRFC3161OidValue)) ||\r
+ (CompareMem (OBJ_get0_data (XaObj), mSpcRFC3161OidValue, sizeof (mSpcRFC3161OidValue)) != 0))\r
+ {\r
continue;\r
}\r
- Asn1Type = X509_ATTRIBUTE_get0_type(Xa, 0);\r
+\r
+ Asn1Type = X509_ATTRIBUTE_get0_type (Xa, 0);\r
}\r
\r
if (Asn1Type == NULL) {\r
Status = FALSE;\r
goto _Exit;\r
}\r
+\r
TSToken = Asn1Type->value.octet_string->data;\r
TokenSize = Asn1Type->value.octet_string->length;\r
\r
//\r
// Check input parameters.\r
//\r
- if (Cert == NULL || SingleX509Cert == NULL || CertSize > INT_MAX) {\r
+ if ((Cert == NULL) || (SingleX509Cert == NULL) || (CertSize > INT_MAX)) {\r
return FALSE;\r
}\r
\r
// Read DER-encoded X509 Certificate and Construct X509 object.\r
//\r
Temp = Cert;\r
- X509Cert = d2i_X509 (NULL, &Temp, (long) CertSize);\r
+ X509Cert = d2i_X509 (NULL, &Temp, (long)CertSize);\r
if (X509Cert == NULL) {\r
return FALSE;\r
}\r
\r
- *SingleX509Cert = (UINT8 *) X509Cert;\r
+ *SingleX509Cert = (UINT8 *)X509Cert;\r
\r
return TRUE;\r
}\r
IN VA_LIST Args\r
)\r
{\r
- UINT8 *Cert;\r
- UINTN CertSize;\r
- X509 *X509Cert;\r
- STACK_OF(X509) *CertStack;\r
- BOOLEAN Status;\r
- UINTN Index;\r
+ UINT8 *Cert;\r
+ UINTN CertSize;\r
+ X509 *X509Cert;\r
+\r
+ STACK_OF (X509) *CertStack;\r
+ BOOLEAN Status;\r
+ UINTN Index;\r
\r
//\r
// Check input parameters.\r
//\r
// Initialize X509 stack object.\r
//\r
- CertStack = (STACK_OF(X509) *) (*X509Stack);\r
+ CertStack = (STACK_OF (X509) *)(*X509Stack);\r
if (CertStack == NULL) {\r
CertStack = sk_X509_new_null ();\r
if (CertStack == NULL) {\r
// Construct X509 Object from the given DER-encoded certificate data.\r
//\r
X509Cert = NULL;\r
- Status = X509ConstructCertificate (\r
- (CONST UINT8 *) Cert,\r
- CertSize,\r
- (UINT8 **) &X509Cert\r
- );\r
+ Status = X509ConstructCertificate (\r
+ (CONST UINT8 *)Cert,\r
+ CertSize,\r
+ (UINT8 **)&X509Cert\r
+ );\r
if (!Status) {\r
if (X509Cert != NULL) {\r
X509_free (X509Cert);\r
}\r
+\r
break;\r
}\r
\r
if (!Status) {\r
sk_X509_pop_free (CertStack, X509_free);\r
} else {\r
- *X509Stack = (UINT8 *) CertStack;\r
+ *X509Stack = (UINT8 *)CertStack;\r
}\r
\r
return Status;\r
//\r
// Free OpenSSL X509 object.\r
//\r
- X509_free ((X509 *) X509Cert);\r
+ X509_free ((X509 *)X509Cert);\r
}\r
\r
/**\r
//\r
// Free OpenSSL X509 stack object.\r
//\r
- sk_X509_pop_free ((STACK_OF(X509) *) X509Stack, X509_free);\r
+ sk_X509_pop_free ((STACK_OF (X509) *) X509Stack, X509_free);\r
}\r
\r
/**\r
//\r
// Check input parameters.\r
//\r
- if (Cert == NULL || SubjectSize == NULL) {\r
+ if ((Cert == NULL) || (SubjectSize == NULL)) {\r
return FALSE;\r
}\r
\r
//\r
// Read DER-encoded X509 Certificate and Construct X509 object.\r
//\r
- Status = X509ConstructCertificate (Cert, CertSize, (UINT8 **) &X509Cert);\r
+ Status = X509ConstructCertificate (Cert, CertSize, (UINT8 **)&X509Cert);\r
if ((X509Cert == NULL) || (!Status)) {\r
Status = FALSE;\r
goto _Exit;\r
goto _Exit;\r
}\r
\r
- X509NameSize = i2d_X509_NAME(X509Name, NULL);\r
+ X509NameSize = i2d_X509_NAME (X509Name, NULL);\r
if (*SubjectSize < X509NameSize) {\r
*SubjectSize = X509NameSize;\r
goto _Exit;\r
}\r
+\r
*SubjectSize = X509NameSize;\r
if (CertSubject != NULL) {\r
- i2d_X509_NAME(X509Name, &CertSubject);\r
+ i2d_X509_NAME (X509Name, &CertSubject);\r
Status = TRUE;\r
}\r
\r
STATIC\r
RETURN_STATUS\r
InternalX509GetNIDName (\r
- IN CONST UINT8 *Cert,\r
- IN UINTN CertSize,\r
- IN INT32 Request_NID,\r
- OUT CHAR8 *CommonName OPTIONAL,\r
- IN OUT UINTN *CommonNameSize\r
+ IN CONST UINT8 *Cert,\r
+ IN UINTN CertSize,\r
+ IN INT32 Request_NID,\r
+ OUT CHAR8 *CommonName OPTIONAL,\r
+ IN OUT UINTN *CommonNameSize\r
)\r
{\r
RETURN_STATUS ReturnStatus;\r
if ((Cert == NULL) || (CertSize > INT_MAX) || (CommonNameSize == NULL)) {\r
return ReturnStatus;\r
}\r
+\r
if ((CommonName != NULL) && (*CommonNameSize == 0)) {\r
return ReturnStatus;\r
}\r
//\r
// Read DER-encoded X509 Certificate and Construct X509 object.\r
//\r
- Status = X509ConstructCertificate (Cert, CertSize, (UINT8 **) &X509Cert);\r
+ Status = X509ConstructCertificate (Cert, CertSize, (UINT8 **)&X509Cert);\r
if ((X509Cert == NULL) || (!Status)) {\r
//\r
// Invalid X.509 Certificate\r
\r
if (CommonName == NULL) {\r
*CommonNameSize = Length + 1;\r
- ReturnStatus = RETURN_BUFFER_TOO_SMALL;\r
+ ReturnStatus = RETURN_BUFFER_TOO_SMALL;\r
} else {\r
*CommonNameSize = MIN ((UINTN)Length, *CommonNameSize - 1) + 1;\r
CopyMem (CommonName, UTF8Name, *CommonNameSize - 1);\r
CommonName[*CommonNameSize - 1] = '\0';\r
- ReturnStatus = RETURN_SUCCESS;\r
+ ReturnStatus = RETURN_SUCCESS;\r
}\r
\r
_Exit:\r
if (X509Cert != NULL) {\r
X509_free (X509Cert);\r
}\r
+\r
if (UTF8Name != NULL) {\r
OPENSSL_free (UTF8Name);\r
}\r
RETURN_STATUS\r
EFIAPI\r
X509GetOrganizationName (\r
- IN CONST UINT8 *Cert,\r
- IN UINTN CertSize,\r
- OUT CHAR8 *NameBuffer OPTIONAL,\r
- IN OUT UINTN *NameBufferSize\r
+ IN CONST UINT8 *Cert,\r
+ IN UINTN CertSize,\r
+ OUT CHAR8 *NameBuffer OPTIONAL,\r
+ IN OUT UINTN *NameBufferSize\r
)\r
{\r
return InternalX509GetNIDName (Cert, CertSize, NID_organizationName, NameBuffer, NameBufferSize);\r
//\r
// Check input parameters.\r
//\r
- if (Cert == NULL || RsaContext == NULL) {\r
+ if ((Cert == NULL) || (RsaContext == NULL)) {\r
return FALSE;\r
}\r
\r
//\r
// Read DER-encoded X509 Certificate and Construct X509 object.\r
//\r
- Status = X509ConstructCertificate (Cert, CertSize, (UINT8 **) &X509Cert);\r
+ Status = X509ConstructCertificate (Cert, CertSize, (UINT8 **)&X509Cert);\r
if ((X509Cert == NULL) || (!Status)) {\r
Status = FALSE;\r
goto _Exit;\r
//\r
// Check input parameters.\r
//\r
- if (Cert == NULL || CACert == NULL) {\r
+ if ((Cert == NULL) || (CACert == NULL)) {\r
return FALSE;\r
}\r
\r
if (EVP_add_digest (EVP_md5 ()) == 0) {\r
goto _Exit;\r
}\r
+\r
if (EVP_add_digest (EVP_sha1 ()) == 0) {\r
goto _Exit;\r
}\r
+\r
if (EVP_add_digest (EVP_sha256 ()) == 0) {\r
goto _Exit;\r
}\r
//\r
// Read DER-encoded certificate to be verified and Construct X509 object.\r
//\r
- Status = X509ConstructCertificate (Cert, CertSize, (UINT8 **) &X509Cert);\r
+ Status = X509ConstructCertificate (Cert, CertSize, (UINT8 **)&X509Cert);\r
if ((X509Cert == NULL) || (!Status)) {\r
Status = FALSE;\r
goto _Exit;\r
//\r
// Read DER-encoded root certificate and Construct X509 object.\r
//\r
- Status = X509ConstructCertificate (CACert, CACertSize, (UINT8 **) &X509CACert);\r
+ Status = X509ConstructCertificate (CACert, CACertSize, (UINT8 **)&X509CACert);\r
if ((X509CACert == NULL) || (!Status)) {\r
Status = FALSE;\r
goto _Exit;\r
if (CertStore == NULL) {\r
goto _Exit;\r
}\r
+\r
if (!(X509_STORE_add_cert (CertStore, X509CACert))) {\r
goto _Exit;\r
}\r
// Allow partial certificate chains, terminated by a non-self-signed but\r
// still trusted intermediate certificate. Also disable time checks.\r
//\r
- X509_STORE_set_flags (CertStore,\r
- X509_V_FLAG_PARTIAL_CHAIN | X509_V_FLAG_NO_CHECK_TIME);\r
+ X509_STORE_set_flags (\r
+ CertStore,\r
+ X509_V_FLAG_PARTIAL_CHAIN | X509_V_FLAG_NO_CHECK_TIME\r
+ );\r
\r
//\r
// Set up X509_STORE_CTX for the subsequent verification operation.\r
if (CertCtx == NULL) {\r
goto _Exit;\r
}\r
+\r
if (!X509_STORE_CTX_init (CertCtx, CertStore, X509Cert, NULL)) {\r
goto _Exit;\r
}\r
//\r
// X509 Certificate Verification.\r
//\r
- Status = (BOOLEAN) X509_verify_cert (CertCtx);\r
+ Status = (BOOLEAN)X509_verify_cert (CertCtx);\r
X509_STORE_CTX_cleanup (CertCtx);\r
\r
_Exit:\r
// Check input parameters.\r
//\r
if ((Cert == NULL) || (TBSCert == NULL) ||\r
- (TBSCertSize == NULL) || (CertSize > INT_MAX)) {\r
+ (TBSCertSize == NULL) || (CertSize > INT_MAX))\r
+ {\r
return FALSE;\r
}\r
\r
RETURN_STATUS\r
EFIAPI\r
X509GetOrganizationName (\r
- IN CONST UINT8 *Cert,\r
- IN UINTN CertSize,\r
- OUT CHAR8 *NameBuffer OPTIONAL,\r
- IN OUT UINTN *NameBufferSize\r
+ IN CONST UINT8 *Cert,\r
+ IN UINTN CertSize,\r
+ OUT CHAR8 *NameBuffer OPTIONAL,\r
+ IN OUT UINTN *NameBufferSize\r
)\r
{\r
ASSERT (FALSE);\r
// NOTE: A cryptographic PRNG must be seeded with unpredictable data.\r
//\r
if (Seed != NULL) {\r
- RAND_seed (Seed, (UINT32) SeedSize);\r
+ RAND_seed (Seed, (UINT32)SeedSize);\r
} else {\r
RAND_seed (DefaultSeed, sizeof (DefaultSeed));\r
}\r
//\r
// Check input parameters.\r
//\r
- if (Output == NULL || Size > INT_MAX) {\r
+ if ((Output == NULL) || (Size > INT_MAX)) {\r
return FALSE;\r
}\r
\r
//\r
// Generate random data.\r
//\r
- if (RAND_bytes (Output, (UINT32) Size) != 1) {\r
+ if (RAND_bytes (Output, (UINT32)Size) != 1) {\r
return FALSE;\r
}\r
\r
\r
#include "InternalCryptLib.h"\r
\r
-\r
/**\r
Sets up the seed value for the pseudorandom number generator.\r
\r
// NOTE: A cryptographic PRNG must be seeded with unpredictable data.\r
//\r
if (Seed != NULL) {\r
- RAND_seed (Seed, (UINT32) SeedSize);\r
+ RAND_seed (Seed, (UINT32)SeedSize);\r
} else {\r
//\r
// Retrieve current time.\r
//\r
// Check input parameters.\r
//\r
- if (Output == NULL || Size > INT_MAX) {\r
+ if ((Output == NULL) || (Size > INT_MAX)) {\r
return FALSE;\r
}\r
\r
//\r
// Generate random data.\r
//\r
- if (RAND_bytes (Output, (UINT32) Size) != 1) {\r
+ if (RAND_bytes (Output, (UINT32)Size) != 1) {\r
return FALSE;\r
}\r
\r
//\r
// Extra header to record the memory buffer size from malloc routine.\r
//\r
-#define CRYPTMEM_HEAD_SIGNATURE SIGNATURE_32('c','m','h','d')\r
+#define CRYPTMEM_HEAD_SIGNATURE SIGNATURE_32('c','m','h','d')\r
typedef struct {\r
UINT32 Signature;\r
UINT32 Reserved;\r
UINTN Size;\r
} CRYPTMEM_HEAD;\r
\r
-#define CRYPTMEM_OVERHEAD sizeof(CRYPTMEM_HEAD)\r
+#define CRYPTMEM_OVERHEAD sizeof(CRYPTMEM_HEAD)\r
\r
//\r
// -- Memory-Allocation Routines --\r
//\r
\r
/* Allocates memory blocks */\r
-void *malloc (size_t size)\r
+void *\r
+malloc (\r
+ size_t size\r
+ )\r
{\r
CRYPTMEM_HEAD *PoolHdr;\r
UINTN NewSize;\r
//\r
NewSize = (UINTN)(size) + CRYPTMEM_OVERHEAD;\r
\r
- Data = AllocatePool (NewSize);\r
+ Data = AllocatePool (NewSize);\r
if (Data != NULL) {\r
PoolHdr = (CRYPTMEM_HEAD *)Data;\r
//\r
}\r
\r
/* Reallocate memory blocks */\r
-void *realloc (void *ptr, size_t size)\r
+void *\r
+realloc (\r
+ void *ptr,\r
+ size_t size\r
+ )\r
{\r
CRYPTMEM_HEAD *OldPoolHdr;\r
CRYPTMEM_HEAD *NewPoolHdr;\r
VOID *Data;\r
\r
NewSize = (UINTN)size + CRYPTMEM_OVERHEAD;\r
- Data = AllocatePool (NewSize);\r
+ Data = AllocatePool (NewSize);\r
if (Data != NULL) {\r
- NewPoolHdr = (CRYPTMEM_HEAD *)Data;\r
+ NewPoolHdr = (CRYPTMEM_HEAD *)Data;\r
NewPoolHdr->Signature = CRYPTMEM_HEAD_SIGNATURE;\r
NewPoolHdr->Size = size;\r
if (ptr != NULL) {\r
}\r
\r
/* De-allocates or frees a memory block */\r
-void free (void *ptr)\r
+void\r
+free (\r
+ void *ptr\r
+ )\r
{\r
CRYPTMEM_HEAD *PoolHdr;\r
\r
// -- Time Management Routines --\r
//\r
\r
-time_t time (time_t *timer)\r
+time_t\r
+time (\r
+ time_t *timer\r
+ )\r
{\r
if (timer != NULL) {\r
*timer = 0;\r
}\r
+\r
return 0;\r
}\r
\r
-struct tm * gmtime (const time_t *timer)\r
+struct tm *\r
+gmtime (\r
+ const time_t *timer\r
+ )\r
{\r
return NULL;\r
}\r
\r
#include <CrtLibSupport.h>\r
\r
-int errno = 0;\r
+int errno = 0;\r
\r
FILE *stderr = NULL;\r
FILE *stdin = NULL;\r
IN VOID *Buffer\r
)\r
{\r
- VOID *Pivot;\r
- UINTN LoopCount;\r
- UINTN NextSwapLocation;\r
+ VOID *Pivot;\r
+ UINTN LoopCount;\r
+ UINTN NextSwapLocation;\r
\r
- ASSERT(BufferToSort != NULL);\r
- ASSERT(CompareFunction != NULL);\r
- ASSERT(Buffer != NULL);\r
+ ASSERT (BufferToSort != NULL);\r
+ ASSERT (CompareFunction != NULL);\r
+ ASSERT (Buffer != NULL);\r
\r
- if (Count < 2 || ElementSize < 1) {\r
+ if ((Count < 2) || (ElementSize < 1)) {\r
return;\r
}\r
\r
// Now get the pivot such that all on "left" are below it\r
// and everything "right" are above it\r
//\r
- for (LoopCount = 0; LoopCount < Count - 1; LoopCount++)\r
- {\r
+ for (LoopCount = 0; LoopCount < Count - 1; LoopCount++) {\r
//\r
// If the element is less than the pivot\r
//\r
NextSwapLocation++;\r
}\r
}\r
+\r
//\r
// Swap pivot to its final position (NextSwapLocation)\r
//\r
return;\r
}\r
\r
-//---------------------------------------------------------\r
+// ---------------------------------------------------------\r
// Standard C Run-time Library Interface Wrapper\r
-//---------------------------------------------------------\r
+// ---------------------------------------------------------\r
\r
//\r
// -- String Manipulation Routines --\r
//\r
\r
-char *strchr(const char *str, int ch)\r
+char *\r
+strchr (\r
+ const char *str,\r
+ int ch\r
+ )\r
{\r
return ScanMem8 (str, AsciiStrSize (str), (UINT8)ch);\r
}\r
\r
/* Scan a string for the last occurrence of a character */\r
-char *strrchr (const char *str, int c)\r
+char *\r
+strrchr (\r
+ const char *str,\r
+ int c\r
+ )\r
{\r
- char * save;\r
+ char *save;\r
\r
for (save = NULL; ; ++str) {\r
if (*str == c) {\r
save = (char *)str;\r
}\r
+\r
if (*str == 0) {\r
return (save);\r
}\r
}\r
\r
/* Compare first n bytes of string s1 with string s2, ignoring case */\r
-int strncasecmp (const char *s1, const char *s2, size_t n)\r
+int\r
+strncasecmp (\r
+ const char *s1,\r
+ const char *s2,\r
+ size_t n\r
+ )\r
{\r
- int Val;\r
+ int Val;\r
\r
- ASSERT(s1 != NULL);\r
- ASSERT(s2 != NULL);\r
+ ASSERT (s1 != NULL);\r
+ ASSERT (s2 != NULL);\r
\r
if (n != 0) {\r
do {\r
- Val = tolower(*s1) - tolower(*s2);\r
+ Val = tolower (*s1) - tolower (*s2);\r
if (Val != 0) {\r
return Val;\r
}\r
+\r
++s1;\r
++s2;\r
if (*s1 == '\0') {\r
}\r
} while (--n != 0);\r
}\r
+\r
return 0;\r
}\r
\r
/* Read formatted data from a string */\r
-int sscanf (const char *buffer, const char *format, ...)\r
+int\r
+sscanf (\r
+ const char *buffer,\r
+ const char *format,\r
+ ...\r
+ )\r
{\r
//\r
// Null sscanf() function implementation to satisfy the linker, since\r
}\r
\r
/* Maps errnum to an error-message string */\r
-char * strerror (int errnum)\r
+char *\r
+strerror (\r
+ int errnum\r
+ )\r
{\r
return NULL;\r
}\r
\r
/* Computes the length of the maximum initial segment of the string pointed to by s1\r
which consists entirely of characters from the string pointed to by s2. */\r
-size_t strspn (const char *s1 , const char *s2)\r
+size_t\r
+strspn (\r
+ const char *s1,\r
+ const char *s2\r
+ )\r
{\r
UINT8 Map[32];\r
UINT32 Index;\r
\r
/* Computes the length of the maximum initial segment of the string pointed to by s1\r
which consists entirely of characters not from the string pointed to by s2. */\r
-size_t strcspn (const char *s1, const char *s2)\r
+size_t\r
+strcspn (\r
+ const char *s1,\r
+ const char *s2\r
+ )\r
{\r
- UINT8 Map[32];\r
- UINT32 Index;\r
- size_t Count;\r
+ UINT8 Map[32];\r
+ UINT32 Index;\r
+ size_t Count;\r
\r
for (Index = 0; Index < 32; Index++) {\r
Map[Index] = 0;\r
\r
Map[0] |= 1;\r
\r
- Count = 0;\r
+ Count = 0;\r
while (!(Map[*s1 >> 3] & (1 << (*s1 & 7)))) {\r
- Count ++;\r
+ Count++;\r
s1++;\r
}\r
\r
//\r
\r
/* Determines if a particular character is a decimal-digit character */\r
-int isdigit (int c)\r
+int\r
+isdigit (\r
+ int c\r
+ )\r
{\r
//\r
// <digit> ::= [0-9]\r
}\r
\r
/* Determine if an integer represents character that is a hex digit */\r
-int isxdigit (int c)\r
+int\r
+isxdigit (\r
+ int c\r
+ )\r
{\r
//\r
// <hexdigit> ::= [0-9] | [a-f] | [A-F]\r
}\r
\r
/* Determines if a particular character represents a space character */\r
-int isspace (int c)\r
+int\r
+isspace (\r
+ int c\r
+ )\r
{\r
//\r
// <space> ::= [ ]\r
}\r
\r
/* Determine if a particular character is an alphanumeric character */\r
-int isalnum (int c)\r
+int\r
+isalnum (\r
+ int c\r
+ )\r
{\r
//\r
// <alnum> ::= [0-9] | [a-z] | [A-Z]\r
}\r
\r
/* Determines if a particular character is in upper case */\r
-int isupper (int c)\r
+int\r
+isupper (\r
+ int c\r
+ )\r
{\r
//\r
// <uppercase letter> := [A-Z]\r
//\r
\r
/* Convert strings to a long-integer value */\r
-long strtol (const char *nptr, char **endptr, int base)\r
+long\r
+strtol (\r
+ const char *nptr,\r
+ char **endptr,\r
+ int base\r
+ )\r
{\r
//\r
// Null strtol() function implementation to satisfy the linker, since there is\r
}\r
\r
/* Convert strings to an unsigned long-integer value */\r
-unsigned long strtoul (const char *nptr, char **endptr, int base)\r
+unsigned long\r
+strtoul (\r
+ const char *nptr,\r
+ char **endptr,\r
+ int base\r
+ )\r
{\r
//\r
// Null strtoul() function implementation to satisfy the linker, since there is\r
}\r
\r
/* Convert character to lowercase */\r
-int tolower (int c)\r
+int\r
+tolower (\r
+ int c\r
+ )\r
{\r
if (('A' <= (c)) && ((c) <= 'Z')) {\r
return (c - ('A' - 'a'));\r
}\r
+\r
return (c);\r
}\r
\r
//\r
\r
/* Performs a quick sort */\r
-void qsort (void *base, size_t num, size_t width, int (*compare)(const void *, const void *))\r
+void\r
+qsort (\r
+ void *base,\r
+ size_t num,\r
+ size_t width,\r
+ int ( *compare )(const void *, const void *)\r
+ )\r
{\r
VOID *Buffer;\r
\r
//\r
\r
/* Get a value from the current environment */\r
-char *getenv (const char *varname)\r
+char *\r
+getenv (\r
+ const char *varname\r
+ )\r
{\r
//\r
// Null getenv() function implementation to satisfy the linker, since there is\r
}\r
\r
/* Get a value from the current environment */\r
-char *secure_getenv (const char *varname)\r
+char *\r
+secure_getenv (\r
+ const char *varname\r
+ )\r
{\r
//\r
// Null secure_getenv() function implementation to satisfy the linker, since\r
//\r
\r
/* Write data to a stream */\r
-size_t fwrite (const void *buffer, size_t size, size_t count, FILE *stream)\r
+size_t\r
+fwrite (\r
+ const void *buffer,\r
+ size_t size,\r
+ size_t count,\r
+ FILE *stream\r
+ )\r
{\r
return 0;\r
}\r
// -- Dummy OpenSSL Support Routines --\r
//\r
\r
-int BIO_printf (void *bio, const char *format, ...)\r
+int\r
+BIO_printf (\r
+ void *bio,\r
+ const char *format,\r
+ ...\r
+ )\r
{\r
return 0;\r
}\r
\r
-int BIO_snprintf(char *buf, size_t n, const char *format, ...)\r
+int\r
+BIO_snprintf (\r
+ char *buf,\r
+ size_t n,\r
+ const char *format,\r
+ ...\r
+ )\r
{\r
return 0;\r
}\r
VOID\r
(EFIAPI *NoReturnFuncPtr)(\r
VOID\r
- ) __attribute__((__noreturn__));\r
+ ) __attribute__ ((__noreturn__));\r
\r
STATIC\r
VOID\r
{\r
}\r
\r
-void abort (void)\r
+void\r
+abort (\r
+ void\r
+ )\r
{\r
- NoReturnFuncPtr NoReturnFunc;\r
+ NoReturnFuncPtr NoReturnFunc;\r
\r
- NoReturnFunc = (NoReturnFuncPtr) NopFunction;\r
+ NoReturnFunc = (NoReturnFuncPtr)NopFunction;\r
\r
NoReturnFunc ();\r
}\r
\r
#else\r
\r
-void abort (void)\r
+void\r
+abort (\r
+ void\r
+ )\r
{\r
// Do nothing\r
}\r
\r
#endif\r
\r
-int fclose (FILE *f)\r
+int\r
+fclose (\r
+ FILE *f\r
+ )\r
{\r
return 0;\r
}\r
\r
-FILE *fopen (const char *c, const char *m)\r
+FILE *\r
+fopen (\r
+ const char *c,\r
+ const char *m\r
+ )\r
{\r
return NULL;\r
}\r
\r
-size_t fread (void *b, size_t c, size_t i, FILE *f)\r
+size_t\r
+fread (\r
+ void *b,\r
+ size_t c,\r
+ size_t i,\r
+ FILE *f\r
+ )\r
{\r
return 0;\r
}\r
\r
-uid_t getuid (void)\r
+uid_t\r
+getuid (\r
+ void\r
+ )\r
{\r
return 0;\r
}\r
\r
-uid_t geteuid (void)\r
+uid_t\r
+geteuid (\r
+ void\r
+ )\r
{\r
return 0;\r
}\r
\r
-gid_t getgid (void)\r
+gid_t\r
+getgid (\r
+ void\r
+ )\r
{\r
return 0;\r
}\r
\r
-gid_t getegid (void)\r
+gid_t\r
+getegid (\r
+ void\r
+ )\r
{\r
return 0;\r
}\r
\r
-int printf (char const *fmt, ...)\r
+int\r
+printf (\r
+ char const *fmt,\r
+ ...\r
+ )\r
{\r
return 0;\r
}\r
#include <Library/MemoryAllocationLib.h>\r
#include <Guid/EventGroup.h>\r
\r
-//----------------------------------------------------------------\r
+// ----------------------------------------------------------------\r
// Initial version. Needs further optimizations.\r
-//----------------------------------------------------------------\r
+// ----------------------------------------------------------------\r
\r
//\r
// Definitions for Runtime Memory Operations\r
//\r
-#define RT_PAGE_SIZE 0x200\r
-#define RT_PAGE_MASK 0x1FF\r
-#define RT_PAGE_SHIFT 9\r
+#define RT_PAGE_SIZE 0x200\r
+#define RT_PAGE_MASK 0x1FF\r
+#define RT_PAGE_SHIFT 9\r
\r
-#define RT_SIZE_TO_PAGES(a) (((a) >> RT_PAGE_SHIFT) + (((a) & RT_PAGE_MASK) ? 1 : 0))\r
-#define RT_PAGES_TO_SIZE(a) ((a) << RT_PAGE_SHIFT)\r
+#define RT_SIZE_TO_PAGES(a) (((a) >> RT_PAGE_SHIFT) + (((a) & RT_PAGE_MASK) ? 1 : 0))\r
+#define RT_PAGES_TO_SIZE(a) ((a) << RT_PAGE_SHIFT)\r
\r
//\r
// Page Flag Definitions\r
//\r
-#define RT_PAGE_FREE 0x00000000\r
-#define RT_PAGE_USED 0x00000001\r
+#define RT_PAGE_FREE 0x00000000\r
+#define RT_PAGE_USED 0x00000001\r
\r
-#define MIN_REQUIRED_BLOCKS 600\r
+#define MIN_REQUIRED_BLOCKS 600\r
\r
//\r
// Memory Page Table\r
//\r
typedef struct {\r
- UINTN StartPageOffset; // Offset of the starting page allocated.\r
+ UINTN StartPageOffset; // Offset of the starting page allocated.\r
// Only available for USED pages.\r
- UINT32 PageFlag; // Page Attributes.\r
+ UINT32 PageFlag; // Page Attributes.\r
} RT_MEMORY_PAGE_ENTRY;\r
\r
typedef struct {\r
- UINTN PageCount;\r
- UINTN LastEmptyPageOffset;\r
- UINT8 *DataAreaBase; // Pointer to data Area.\r
- RT_MEMORY_PAGE_ENTRY Pages[1]; // Page Table Entries.\r
+ UINTN PageCount;\r
+ UINTN LastEmptyPageOffset;\r
+ UINT8 *DataAreaBase; // Pointer to data Area.\r
+ RT_MEMORY_PAGE_ENTRY Pages[1]; // Page Table Entries.\r
} RT_MEMORY_PAGE_TABLE;\r
\r
//\r
//\r
// Event for Runtime Address Conversion.\r
//\r
-STATIC EFI_EVENT mVirtualAddressChangeEvent;\r
-\r
+STATIC EFI_EVENT mVirtualAddressChangeEvent;\r
\r
/**\r
Initializes pre-allocated memory pointed by ScratchBuffer for subsequent\r