OLD | NEW |
1 // Copyright (c) 2010 The Chromium OS Authors. All rights reserved. | 1 // Copyright (c) 2010 The Chromium OS Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #ifndef ENTD_PKCS11_H_ | 5 #ifndef ENTD_PKCS11_H_ |
6 #define ENTD_PKCS11_H_ | 6 #define ENTD_PKCS11_H_ |
7 | 7 |
8 #include <string> | 8 #include <string> |
9 #include <vector> | 9 #include <vector> |
10 | 10 |
(...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
77 Pkcs11SlotHandler* slot_handler_; | 77 Pkcs11SlotHandler* slot_handler_; |
78 }; | 78 }; |
79 | 79 |
80 // Pkcs11 JavaScript Interface class. | 80 // Pkcs11 JavaScript Interface class. |
81 // | 81 // |
82 // This class wraps a V8 singleton object to handle the PKCS11 interface. | 82 // This class wraps a V8 singleton object to handle the PKCS11 interface. |
83 class Pkcs11 : public JSObjectWrapper<Pkcs11> { | 83 class Pkcs11 : public JSObjectWrapper<Pkcs11> { |
84 public: | 84 public: |
85 // The constructor takes two handlers: | 85 // The constructor takes two handlers: |
86 // * cert_handler builds CSRs and certificates. | 86 // * cert_handler builds CSRs and certificates. |
| 87 // - builds CSRs |
| 88 // - may generate a public/private key pair |
| 89 // - parses Certificates and extracts the subject |
87 // * slot_handler handles the interface with a pkcs11 device: | 90 // * slot_handler handles the interface with a pkcs11 device: |
88 // - generates public/private key pairs | 91 // - may generate public/private key pairs |
89 // - adds certificates | 92 // - stores key pairs and certificates |
90 // - retrieves a list of slot labels and the contents of a named slot. | 93 // - retrieves a list of existing token objects in a slot |
91 // | 94 // |
92 // If cert_handler is NULL, a Pkcs11CertificateHandlerLocalFile is built, | 95 // If cert_handler or slot_handler NULL, |
93 // with empty filenames (see below). | 96 // the class is initialized with the default handler (see code). |
94 // If slot_handler is NULL, a Pkcs11SlotHandlerInMemory is built | |
95 // (see code). | |
96 Pkcs11(Pkcs11CertificateHandler* cert_handler, | 97 Pkcs11(Pkcs11CertificateHandler* cert_handler, |
97 Pkcs11SlotHandler* slot_handler); | 98 Pkcs11SlotHandler* slot_handler); |
98 virtual ~Pkcs11(); | 99 virtual ~Pkcs11(); |
99 virtual bool Initialize(); | 100 virtual bool Initialize(); |
100 // Call this *instead of* Initialize() to use opencryptoki with openssl | 101 // Set the Certificate handler to use openssl to generate CSRs |
101 bool InitializeOpenCryptoki(const std::string& engine); | 102 bool SetOpenSSLHandlers(); |
102 // Call this *instead of* Initialize() to use openssl to generate keys | 103 // Set the Slot handler to use opencryptoki, |
103 // and to store the private key in the tpm (like glaptop does) | 104 // and the Certificate handler to use openssl |
104 bool InitializeGLaptop(); | 105 bool SetOpenCryptokiHandlers(); |
105 // Call this *instead of* Initialize() to use openssl without opencryptoki | |
106 bool InitializeOpenSSL(); | |
107 // Call this *instead of* Initialize() to use local files | |
108 bool InitializeLocalFiles(const std::string& csr, const std::string& cert); | |
109 | 106 |
110 // Adds slot_object to "pkcs11.slots" | 107 // Adds slot_object to "pkcs11.slots" |
111 bool AddJSSlotObject(const SlotObject* slot_object); | 108 bool AddJSSlotObject(const SlotObject* slot_object); |
112 bool RemoveJSSlotObject(const std::string& label); | 109 bool RemoveJSSlotObject(const std::string& label); |
113 | 110 |
114 // JSObjectWrapper functions | 111 // JSObjectWrapper functions |
115 static const char* GetClassName() { return "pkcs11"; } | 112 static const char* GetClassName() { return "pkcs11"; } |
116 static void SetTemplateBindings( | 113 static void SetTemplateBindings( |
117 v8::Handle<v8::ObjectTemplate> template_object); | 114 v8::Handle<v8::ObjectTemplate> template_object); |
118 | 115 |
(...skipping 10 matching lines...) Expand all Loading... |
129 scoped_ptr<Pkcs11SlotHandler> slot_handler_; | 126 scoped_ptr<Pkcs11SlotHandler> slot_handler_; |
130 | 127 |
131 void SetupHandlers(); | 128 void SetupHandlers(); |
132 | 129 |
133 DISALLOW_COPY_AND_ASSIGN(Pkcs11); | 130 DISALLOW_COPY_AND_ASSIGN(Pkcs11); |
134 }; | 131 }; |
135 | 132 |
136 } // namespace entd | 133 } // namespace entd |
137 | 134 |
138 #endif // ENTD_PKCS11_H_ | 135 #endif // ENTD_PKCS11_H_ |
OLD | NEW |