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

Side by Side Diff: base/crypto/rsa_private_key.h

Issue 6747014: Base: Last set of files to use BASE_API (for base.dll) (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Created 9 years, 9 months 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 The Chromium 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 BASE_CRYPTO_RSA_PRIVATE_KEY_H_ 5 #ifndef BASE_CRYPTO_RSA_PRIVATE_KEY_H_
6 #define BASE_CRYPTO_RSA_PRIVATE_KEY_H_ 6 #define BASE_CRYPTO_RSA_PRIVATE_KEY_H_
7 #pragma once 7 #pragma once
8 8
9 #include "build/build_config.h" 9 #include "build/build_config.h"
10 10
11 #if defined(USE_OPENSSL) 11 #if defined(USE_OPENSSL)
12 // Forward declaration for openssl/*.h 12 // Forward declaration for openssl/*.h
13 typedef struct evp_pkey_st EVP_PKEY; 13 typedef struct evp_pkey_st EVP_PKEY;
14 #elif defined(USE_NSS) 14 #elif defined(USE_NSS)
15 // Forward declaration. 15 // Forward declaration.
16 struct SECKEYPrivateKeyStr; 16 struct SECKEYPrivateKeyStr;
17 struct SECKEYPublicKeyStr; 17 struct SECKEYPublicKeyStr;
18 #elif defined(OS_MACOSX) 18 #elif defined(OS_MACOSX)
19 #include <Security/cssm.h> 19 #include <Security/cssm.h>
20 #endif 20 #endif
21 21
22 #include <list> 22 #include <list>
23 #include <vector> 23 #include <vector>
24 24
25 #include "base/base_api.h"
25 #include "base/basictypes.h" 26 #include "base/basictypes.h"
26 27
27 #if defined(OS_WIN) 28 #if defined(OS_WIN)
28 #include "base/crypto/scoped_capi_types.h" 29 #include "base/crypto/scoped_capi_types.h"
29 #endif 30 #endif
30 #if defined(USE_NSS) 31 #if defined(USE_NSS)
31 #include "base/gtest_prod_util.h" 32 #include "base/gtest_prod_util.h"
32 #endif 33 #endif
33 34
34 namespace base { 35 namespace base {
35 36
36 // Used internally by RSAPrivateKey for serializing and deserializing 37 // Used internally by RSAPrivateKey for serializing and deserializing
37 // PKCS #8 PrivateKeyInfo and PublicKeyInfo. 38 // PKCS #8 PrivateKeyInfo and PublicKeyInfo.
38 class PrivateKeyInfoCodec { 39 class BASE_API PrivateKeyInfoCodec {
39 public: 40 public:
40 41
41 // ASN.1 encoding of the AlgorithmIdentifier from PKCS #8. 42 // ASN.1 encoding of the AlgorithmIdentifier from PKCS #8.
42 static const uint8 kRsaAlgorithmIdentifier[]; 43 static const uint8 kRsaAlgorithmIdentifier[];
43 44
44 // ASN.1 tags for some types we use. 45 // ASN.1 tags for some types we use.
45 static const uint8 kBitStringTag = 0x03; 46 static const uint8 kBitStringTag = 0x03;
46 static const uint8 kIntegerTag = 0x02; 47 static const uint8 kIntegerTag = 0x02;
47 static const uint8 kNullTag = 0x05; 48 static const uint8 kNullTag = 0x05;
48 static const uint8 kOctetStringTag = 0x04; 49 static const uint8 kOctetStringTag = 0x04;
(...skipping 114 matching lines...) Expand 10 before | Expand all | Expand 10 after
163 std::vector<uint8> exponent1_; 164 std::vector<uint8> exponent1_;
164 std::vector<uint8> exponent2_; 165 std::vector<uint8> exponent2_;
165 std::vector<uint8> coefficient_; 166 std::vector<uint8> coefficient_;
166 167
167 DISALLOW_COPY_AND_ASSIGN(PrivateKeyInfoCodec); 168 DISALLOW_COPY_AND_ASSIGN(PrivateKeyInfoCodec);
168 }; 169 };
169 170
170 // Encapsulates an RSA private key. Can be used to generate new keys, export 171 // Encapsulates an RSA private key. Can be used to generate new keys, export
171 // keys to other formats, or to extract a public key. 172 // keys to other formats, or to extract a public key.
172 // TODO(hclam): This class should be ref-counted so it can be reused easily. 173 // TODO(hclam): This class should be ref-counted so it can be reused easily.
173 class RSAPrivateKey { 174 class BASE_API RSAPrivateKey {
174 public: 175 public:
175 ~RSAPrivateKey(); 176 ~RSAPrivateKey();
176 177
177 // Create a new random instance. Can return NULL if initialization fails. 178 // Create a new random instance. Can return NULL if initialization fails.
178 static RSAPrivateKey* Create(uint16 num_bits); 179 static RSAPrivateKey* Create(uint16 num_bits);
179 180
180 // Create a new random instance. Can return NULL if initialization fails. 181 // Create a new random instance. Can return NULL if initialization fails.
181 // The created key is permanent and is not exportable in plaintext form. 182 // The created key is permanent and is not exportable in plaintext form.
182 // 183 //
183 // NOTE: Currently only available if USE_NSS is defined. 184 // NOTE: Currently only available if USE_NSS is defined.
(...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after
264 CSSM_KEY key_; 265 CSSM_KEY key_;
265 CSSM_KEY public_key_; 266 CSSM_KEY public_key_;
266 #endif 267 #endif
267 268
268 DISALLOW_COPY_AND_ASSIGN(RSAPrivateKey); 269 DISALLOW_COPY_AND_ASSIGN(RSAPrivateKey);
269 }; 270 };
270 271
271 } // namespace base 272 } // namespace base
272 273
273 #endif // BASE_CRYPTO_RSA_PRIVATE_KEY_H_ 274 #endif // BASE_CRYPTO_RSA_PRIVATE_KEY_H_
OLDNEW
« base/base_api.h ('K') | « base/crypto/encryptor.h ('k') | base/crypto/secure_hash.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698