//\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