Fix GetSignatureDigestAlgorithm for openssl to prepare for EC key switch.
BUG= R=davidben@chromium.org, juberti@google.com Review URL: https://webrtc-codereview.appspot.com/48209004 Cr-Commit-Position: refs/heads/master@{#9061}
This commit is contained in:
parent
a8e285d193
commit
01aeaee719
@ -219,8 +219,45 @@ OpenSSLCertificate* OpenSSLCertificate::FromPEMString(
|
||||
// and before CleanupSSL.
|
||||
bool OpenSSLCertificate::GetSignatureDigestAlgorithm(
|
||||
std::string* algorithm) const {
|
||||
return OpenSSLDigest::GetDigestName(
|
||||
EVP_get_digestbyobj(x509_->sig_alg->algorithm), algorithm);
|
||||
int nid = OBJ_obj2nid(x509_->sig_alg->algorithm);
|
||||
switch (nid) {
|
||||
case NID_md5WithRSA:
|
||||
case NID_md5WithRSAEncryption:
|
||||
*algorithm = DIGEST_MD5;
|
||||
break;
|
||||
case NID_ecdsa_with_SHA1:
|
||||
case NID_dsaWithSHA1:
|
||||
case NID_dsaWithSHA1_2:
|
||||
case NID_sha1WithRSA:
|
||||
case NID_sha1WithRSAEncryption:
|
||||
*algorithm = DIGEST_SHA_1;
|
||||
break;
|
||||
case NID_ecdsa_with_SHA224:
|
||||
case NID_sha224WithRSAEncryption:
|
||||
case NID_dsa_with_SHA224:
|
||||
*algorithm = DIGEST_SHA_224;
|
||||
break;
|
||||
case NID_ecdsa_with_SHA256:
|
||||
case NID_sha256WithRSAEncryption:
|
||||
case NID_dsa_with_SHA256:
|
||||
*algorithm = DIGEST_SHA_256;
|
||||
break;
|
||||
case NID_ecdsa_with_SHA384:
|
||||
case NID_sha384WithRSAEncryption:
|
||||
*algorithm = DIGEST_SHA_384;
|
||||
break;
|
||||
case NID_ecdsa_with_SHA512:
|
||||
case NID_sha512WithRSAEncryption:
|
||||
*algorithm = DIGEST_SHA_512;
|
||||
break;
|
||||
default:
|
||||
// Unknown algorithm. There are several unhandled options that are less
|
||||
// common and more complex.
|
||||
LOG(LS_ERROR) << "Unknown signature algorithm NID: " << nid;
|
||||
algorithm->clear();
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
bool OpenSSLCertificate::GetChain(SSLCertChain** chain) const {
|
||||
|
Loading…
x
Reference in New Issue
Block a user