diff options
Diffstat (limited to 'net/base/x509_util_nss.h')
-rw-r--r-- | net/base/x509_util_nss.h | 44 |
1 files changed, 43 insertions, 1 deletions
diff --git a/net/base/x509_util_nss.h b/net/base/x509_util_nss.h index 7685167..f00c4ab 100644 --- a/net/base/x509_util_nss.h +++ b/net/base/x509_util_nss.h @@ -6,14 +6,19 @@ #define NET_BASE_X509_UTIL_NSS_H_ #include <string> +#include <vector> #include "base/time.h" +#include "net/base/x509_certificate.h" + +class PickleIterator; typedef struct CERTCertificateStr CERTCertificate; +typedef struct CERTNameStr CERTName; typedef struct SECKEYPrivateKeyStr SECKEYPrivateKey; +typedef struct SECItemStr SECItem; typedef struct SECKEYPublicKeyStr SECKEYPublicKey; - namespace net { namespace x509_util { @@ -30,6 +35,43 @@ CERTCertificate* CreateSelfSignedCert( base::Time not_valid_before, base::Time not_valid_after); +#if defined(USE_NSS) || defined(OS_IOS) +// Parses the Principal attribute from |name| and outputs the result in +// |principal|. +void ParsePrincipal(CERTName* name, + CertPrincipal* principal); + +// Parses the date from |der_date| and outputs the result in |result|. +void ParseDate(const SECItem* der_date, base::Time* result); + +// Parses the serial number from |certificate|. +std::string ParseSerialNumber(const CERTCertificate* certificate); + +// Gets the subjectAltName extension field from the certificate, if any. +void GetSubjectAltName(CERTCertificate* cert_handle, + std::vector<std::string>* dns_names, + std::vector<std::string>* ip_addrs); + +// Creates all possible OS certificate handles from |data| encoded in a specific +// |format|. Returns an empty collection on failure. +X509Certificate::OSCertHandles CreateOSCertHandlesFromBytes( + const char* data, + int length, + X509Certificate::Format format); + +// Reads a single certificate from |pickle_iter| and returns a platform-specific +// certificate handle. Returns an invalid handle, NULL, on failure. +X509Certificate::OSCertHandle ReadOSCertHandleFromPickle( + PickleIterator* pickle_iter); + +// Sets |*size_bits| to be the length of the public key in bits, and sets +// |*type| to one of the |PublicKeyType| values. In case of +// |kPublicKeyTypeUnknown|, |*size_bits| will be set to 0. +void GetPublicKeyInfo(CERTCertificate* handle, + size_t* size_bits, + X509Certificate::PublicKeyType* type); +#endif // defined(USE_NSS) || defined(OS_IOS) + } // namespace x509_util } // namespace net |