Chromium Code Reviews| Index: net/base/x509_certificate_nss.cc |
| =================================================================== |
| --- net/base/x509_certificate_nss.cc (revision 114272) |
| +++ net/base/x509_certificate_nss.cc (working copy) |
| @@ -1142,4 +1142,31 @@ |
| cert_handle->derCert.len); |
| } |
| +// static |
| +void X509Certificate::GetPublicKeyInfo(OSCertHandle cert_handle, |
| + size_t* size_bits, |
| + PublicKeyType* type) { |
| + SECKEYPublicKey* key = CERT_ExtractPublicKey(cert_handle); |
|
Ryan Sleevi
2011/12/13 23:54:16
Can this fail? Do we care?
|
| + *size_bits = SECKEY_PublicKeyStrengthInBits(key); |
| + |
| + switch (key->keyType) { |
| + case rsaKey: |
| + *type = kPublicKeyTypeRSA; |
| + break; |
| + case dsaKey: |
| + *type = kPublicKeyTypeDSA; |
| + break; |
| + case dhKey: |
| + *type = kPublicKeyTypeDH; |
| + break; |
| + case ecKey: |
| + *type = kPublicKeyTypeECDSA; |
| + break; |
| + default: |
| + *type = kPublicKeyTypeUnknown; |
| + *size_bits = 0; |
| + break; |
| + } |
| +} |
| + |
| } // namespace net |