Chromium Code Reviews| Index: net/base/x509_certificate_openssl.cc |
| =================================================================== |
| --- net/base/x509_certificate_openssl.cc (revision 110129) |
| +++ net/base/x509_certificate_openssl.cc (working copy) |
| @@ -619,4 +619,30 @@ |
| der_cache.data_length); |
| } |
| +// static |
| +void X509Certificate::GetPublicKeyInfo(OSCertHandle cert_handle, |
| + size_t* size_bits, |
| + PublicKeyType* type) { |
| + EVP_PKEY* key = X509_get_pubkey(cert_handle); |
| + CHECK(key); |
| + *size_bits = EVP_PKEY_size(key) * 8; |
|
wtc
2011/11/17 02:52:18
Is there an OpenSSL function that returns the key
Ryan Sleevi
2011/11/17 03:20:33
That was on me.
EVP_PKEY_bits, but then it gets i
palmer
2011/12/13 18:55:44
Done.
|
| + |
| + switch (key->type) { |
| + case EVP_PKEY_RSA: |
| + *type = kPublicKeyTypeRSA; |
| + break; |
| + case EVP_PKEY_DSA: |
| + *type = kPublicKeyTypeDSA; |
| + break; |
| + case EVP_PKEY_EC: |
| + *type = kPublicKeyTypeECDSA; |
| + break; |
| + case EVP_PKEY_DH: |
| + *type = kPublicKeyTypeDH; |
| + break; |
| + default: |
| + *type = kPublicKeyTypeUnknown; |
| + } |
| +} |
| + |
| } // namespace net |