| Index: net/base/x509_certificate_nss.cc
|
| ===================================================================
|
| --- net/base/x509_certificate_nss.cc (revision 113824)
|
| +++ net/base/x509_certificate_nss.cc (working copy)
|
| @@ -6,6 +6,7 @@
|
|
|
| #include <cert.h>
|
| #include <cryptohi.h>
|
| +#include <keyhi.h>
|
| #include <nss.h>
|
| #include <pk11pub.h>
|
| #include <prerror.h>
|
| @@ -1045,4 +1046,29 @@
|
| cert_handle->derCert.len);
|
| }
|
|
|
| +// static
|
| +void X509Certificate::GetPublicKeyInfo(OSCertHandle cert_handle,
|
| + size_t* size_bits,
|
| + PublicKeyType* type) {
|
| + SECKEYPublicKey* key = CERT_ExtractPublicKey(cert_handle);
|
| + *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;
|
| + }
|
| +}
|
| +
|
| } // namespace net
|
|
|