Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(204)

Unified Diff: net/base/x509_certificate.h

Issue 8566056: This applies GUIDs to certificate and key nicknames when (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fix memory leak Created 9 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: net/base/x509_certificate.h
diff --git a/net/base/x509_certificate.h b/net/base/x509_certificate.h
index 6e15568387a863197b63ed9ea271f8c0aa38a45d..05e74b39531ec467643e9bce5de56419b1d830aa 100644
--- a/net/base/x509_certificate.h
+++ b/net/base/x509_certificate.h
@@ -15,6 +15,7 @@
#include "base/memory/ref_counted.h"
#include "base/string_piece.h"
#include "base/time.h"
+#include "net/base/cert_type.h"
#include "net/base/net_export.h"
#include "net/base/x509_cert_types.h"
@@ -146,6 +147,24 @@ class NET_EXPORT X509Certificate
// The returned pointer must be stored in a scoped_refptr<X509Certificate>.
static X509Certificate* CreateFromBytes(const char* data, int length);
+#if defined(USE_NSS)
+ // Create an X509Certificate from the DER-encoded representation.
+ // |nickname| can be NULL if an auto-generated nickname is desired.
+ // Returns NULL on failure. The returned pointer must be stored in a
+ // scoped_refptr<X509Certificate>.
+ //
+ // This function differs from CreateFromBytes in that it takes a
+ // nickname that will be used when the certificate is imported into PKCS#11.
+ static X509Certificate* CreateFromBytesWithNickname(const char* data,
+ int length,
+ const char* nickname);
+
+ // The default nickname of the certificate, based on the certificate type
+ // passed in. If this object was created using CreateFromBytesWithNickname,
+ // then this will return the nickname specified upon creation.
+ std::string GetDefaultNickname(CertType type) const;
+#endif
+
// Create an X509Certificate from the representation stored in the given
// pickle. The data for this object is found relative to the given
// pickle_iter, which should be passed to the pickle's various Read* methods.
@@ -413,15 +432,27 @@ class NET_EXPORT X509Certificate
// Returns true if two OSCertHandles refer to identical certificates.
static bool IsSameOSCert(OSCertHandle a, OSCertHandle b);
- // Creates an OS certificate handle from the BER-encoded representation.
+ // Creates an OS certificate handle from the DER-encoded representation.
// Returns NULL on failure.
static OSCertHandle CreateOSCertHandleFromBytes(const char* data,
int length);
+#if defined(USE_NSS)
+ // Creates an OS certificate handle from the DER-encoded representation.
+ // Returns NULL on failure. Sets the default nickname if |nickname| is
+ // non-NULL.
+ static OSCertHandle CreateOSCertHandleFromBytesWithNickname(
+ const char* data,
+ int length,
+ const char* nickname);
+#endif
+
// Creates all possible OS certificate handles from |data| encoded in a
// specific |format|. Returns an empty collection on failure.
static OSCertHandles CreateOSCertHandlesFromBytes(
- const char* data, int length, Format format);
+ const char* data,
+ int length,
+ Format format);
// Duplicates (or adds a reference to) an OS certificate handle.
static OSCertHandle DupOSCertHandle(OSCertHandle cert_handle);
@@ -553,6 +584,14 @@ class NET_EXPORT X509Certificate
// that may be needed for chain building.
OSCertHandles intermediate_ca_certs_;
+#if defined(USE_NSS)
+ // This stores any default nickname that has been set on the certificate
+ // at creation time with CreateFromBytesWithNickname.
+ // If this is empty, then GetDefaultNickname will return a generated name
+ // based on the type of the certificate.
+ std::string default_nickname_;
+#endif
+
#if defined(OS_MACOSX)
// Blocks multiple threads from verifying the cert simultaneously.
// (Marked mutable because it's used in a const method.)

Powered by Google App Engine
This is Rietveld 408576698