summaryrefslogtreecommitdiffstats
path: root/net/base/cert_database.h
diff options
context:
space:
mode:
Diffstat (limited to 'net/base/cert_database.h')
-rw-r--r--net/base/cert_database.h19
1 files changed, 19 insertions, 0 deletions
diff --git a/net/base/cert_database.h b/net/base/cert_database.h
index 9621e45..a264f19 100644
--- a/net/base/cert_database.h
+++ b/net/base/cert_database.h
@@ -6,11 +6,17 @@
#define NET_BASE_CERT_DATABASE_H_
#pragma once
+#include <string>
+#include <vector>
+
#include "base/basictypes.h"
+#include "base/string16.h"
+#include "base/ref_counted.h"
namespace net {
class X509Certificate;
+typedef std::vector<scoped_refptr<X509Certificate> > CertificateList;
// This class provides functions to manipulate the local
// certificate store.
@@ -32,6 +38,19 @@ class CertDatabase {
// the platform cert database, or possibly other network error codes.
int AddUserCert(X509Certificate* cert);
+#if defined(USE_NSS)
+ // Import certificates and private keys from PKCS #12 blob.
+ // Returns OK or a network error code such as ERR_PKCS12_IMPORT_BAD_PASSWORD
+ // or ERR_PKCS12_IMPORT_ERROR.
+ int ImportFromPKCS12(const std::string& data, const string16& password);
+
+ // Export the given certificates and private keys into a PKCS #12 blob,
+ // storing into |output|.
+ // Returns the number of certificates successfully exported.
+ int ExportToPKCS12(const CertificateList& certs, const string16& password,
+ std::string* output);
+#endif
+
private:
DISALLOW_COPY_AND_ASSIGN(CertDatabase);
};