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

Side by Side Diff: crypto/rsa_private_key.h

Issue 1362223002: Cleanup: Remove references to tests that no longer exists / are unused. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: IWYU Created 5 years, 2 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
« no previous file with comments | « content/renderer/render_view_impl.h ('k') | remoting/client/plugin/chromoting_instance.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 CRYPTO_RSA_PRIVATE_KEY_H_ 5 #ifndef CRYPTO_RSA_PRIVATE_KEY_H_
6 #define CRYPTO_RSA_PRIVATE_KEY_H_ 6 #define CRYPTO_RSA_PRIVATE_KEY_H_
7 7
8 #include "build/build_config.h"
9
10 #include <list> 8 #include <list>
11 #include <vector> 9 #include <vector>
12 10
13 #include "base/basictypes.h" 11 #include "base/basictypes.h"
12 #include "build/build_config.h"
14 #include "crypto/crypto_export.h" 13 #include "crypto/crypto_export.h"
15 14
16 #if defined(USE_NSS_CERTS)
17 #include "base/gtest_prod_util.h"
18 #endif
19
20 #if defined(USE_OPENSSL) 15 #if defined(USE_OPENSSL)
21 // Forward declaration for openssl/*.h 16 // Forward declaration for openssl/*.h
22 typedef struct evp_pkey_st EVP_PKEY; 17 typedef struct evp_pkey_st EVP_PKEY;
23 #else 18 #else
24 // Forward declaration. 19 // Forward declaration.
25 typedef struct PK11SlotInfoStr PK11SlotInfo; 20 typedef struct PK11SlotInfoStr PK11SlotInfo;
26 typedef struct SECKEYPrivateKeyStr SECKEYPrivateKey; 21 typedef struct SECKEYPrivateKeyStr SECKEYPrivateKey;
27 typedef struct SECKEYPublicKeyStr SECKEYPublicKey; 22 typedef struct SECKEYPublicKeyStr SECKEYPublicKey;
28 #endif 23 #endif
29 24
30 25
31 namespace crypto { 26 namespace crypto {
32 27
33 // Used internally by RSAPrivateKey for serializing and deserializing 28 // Used internally by RSAPrivateKey for serializing and deserializing
34 // PKCS #8 PrivateKeyInfo and PublicKeyInfo. 29 // PKCS #8 PrivateKeyInfo and PublicKeyInfo.
35 class PrivateKeyInfoCodec { 30 class PrivateKeyInfoCodec {
36 public: 31 public:
37
38 // ASN.1 encoding of the AlgorithmIdentifier from PKCS #8. 32 // ASN.1 encoding of the AlgorithmIdentifier from PKCS #8.
39 static const uint8 kRsaAlgorithmIdentifier[]; 33 static const uint8 kRsaAlgorithmIdentifier[];
40 34
41 // ASN.1 tags for some types we use. 35 // ASN.1 tags for some types we use.
42 static const uint8 kBitStringTag = 0x03; 36 static const uint8 kBitStringTag = 0x03;
43 static const uint8 kIntegerTag = 0x02; 37 static const uint8 kIntegerTag = 0x02;
44 static const uint8 kNullTag = 0x05; 38 static const uint8 kNullTag = 0x05;
45 static const uint8 kOctetStringTag = 0x04; 39 static const uint8 kOctetStringTag = 0x04;
46 static const uint8 kSequenceTag = 0x30; 40 static const uint8 kSequenceTag = 0x30;
47 41
(...skipping 18 matching lines...) Expand all
66 bool ExportPublicKey(std::vector<uint8>* output); 60 bool ExportPublicKey(std::vector<uint8>* output);
67 61
68 // Parses the ASN.1 DER encoding of the PrivateKeyInfo structure in |input| 62 // Parses the ASN.1 DER encoding of the PrivateKeyInfo structure in |input|
69 // and populates the integer components with |big_endian_| byte-significance. 63 // and populates the integer components with |big_endian_| byte-significance.
70 // IMPORTANT NOTE: This is currently *not* security-approved for importing 64 // IMPORTANT NOTE: This is currently *not* security-approved for importing
71 // keys from unstrusted sources. 65 // keys from unstrusted sources.
72 bool Import(const std::vector<uint8>& input); 66 bool Import(const std::vector<uint8>& input);
73 67
74 // Accessors to the contents of the integer components of the PrivateKeyInfo 68 // Accessors to the contents of the integer components of the PrivateKeyInfo
75 // structure. 69 // structure.
76 std::vector<uint8>* modulus() { return &modulus_; }; 70 std::vector<uint8>* modulus() { return &modulus_; }
77 std::vector<uint8>* public_exponent() { return &public_exponent_; }; 71 std::vector<uint8>* public_exponent() { return &public_exponent_; }
78 std::vector<uint8>* private_exponent() { return &private_exponent_; }; 72 std::vector<uint8>* private_exponent() { return &private_exponent_; }
79 std::vector<uint8>* prime1() { return &prime1_; }; 73 std::vector<uint8>* prime1() { return &prime1_; }
80 std::vector<uint8>* prime2() { return &prime2_; }; 74 std::vector<uint8>* prime2() { return &prime2_; }
81 std::vector<uint8>* exponent1() { return &exponent1_; }; 75 std::vector<uint8>* exponent1() { return &exponent1_; }
82 std::vector<uint8>* exponent2() { return &exponent2_; }; 76 std::vector<uint8>* exponent2() { return &exponent2_; }
83 std::vector<uint8>* coefficient() { return &coefficient_; }; 77 std::vector<uint8>* coefficient() { return &coefficient_; }
84 78
85 private: 79 private:
86 // Utility wrappers for PrependIntegerImpl that use the class's |big_endian_| 80 // Utility wrappers for PrependIntegerImpl that use the class's |big_endian_|
87 // value. 81 // value.
88 void PrependInteger(const std::vector<uint8>& in, std::list<uint8>* out); 82 void PrependInteger(const std::vector<uint8>& in, std::list<uint8>* out);
89 void PrependInteger(uint8* val, int num_bytes, std::list<uint8>* data); 83 void PrependInteger(uint8* val, int num_bytes, std::list<uint8>* data);
90 84
91 // Prepends the integer stored in |val| - |val + num_bytes| with |big_endian| 85 // Prepends the integer stored in |val| - |val + num_bytes| with |big_endian|
92 // byte-significance into |data| as an ASN.1 integer. 86 // byte-significance into |data| as an ASN.1 integer.
93 void PrependIntegerImpl(uint8* val, 87 void PrependIntegerImpl(uint8* val,
(...skipping 107 matching lines...) Expand 10 before | Expand all | Expand 10 after
201 // Creates a copy of the object. 195 // Creates a copy of the object.
202 RSAPrivateKey* Copy() const; 196 RSAPrivateKey* Copy() const;
203 197
204 // Exports the private key to a PKCS #1 PrivateKey block. 198 // Exports the private key to a PKCS #1 PrivateKey block.
205 bool ExportPrivateKey(std::vector<uint8>* output) const; 199 bool ExportPrivateKey(std::vector<uint8>* output) const;
206 200
207 // Exports the public key to an X509 SubjectPublicKeyInfo block. 201 // Exports the public key to an X509 SubjectPublicKeyInfo block.
208 bool ExportPublicKey(std::vector<uint8>* output) const; 202 bool ExportPublicKey(std::vector<uint8>* output) const;
209 203
210 private: 204 private:
211 #if defined(USE_NSS_CERTS)
212 FRIEND_TEST_ALL_PREFIXES(RSAPrivateKeyNSSTest, FindFromPublicKey);
213 FRIEND_TEST_ALL_PREFIXES(RSAPrivateKeyNSSTest, FailedFindFromPublicKey);
214 #endif
215
216 // Constructor is private. Use one of the Create*() methods above instead. 205 // Constructor is private. Use one of the Create*() methods above instead.
217 RSAPrivateKey(); 206 RSAPrivateKey();
218 207
219 #if defined(USE_OPENSSL) 208 #if defined(USE_OPENSSL)
220 EVP_PKEY* key_; 209 EVP_PKEY* key_;
221 #else 210 #else
222 SECKEYPrivateKey* key_; 211 SECKEYPrivateKey* key_;
223 SECKEYPublicKey* public_key_; 212 SECKEYPublicKey* public_key_;
224 #endif 213 #endif
225 214
226 DISALLOW_COPY_AND_ASSIGN(RSAPrivateKey); 215 DISALLOW_COPY_AND_ASSIGN(RSAPrivateKey);
227 }; 216 };
228 217
229 } // namespace crypto 218 } // namespace crypto
230 219
231 #endif // CRYPTO_RSA_PRIVATE_KEY_H_ 220 #endif // CRYPTO_RSA_PRIVATE_KEY_H_
OLDNEW
« no previous file with comments | « content/renderer/render_view_impl.h ('k') | remoting/client/plugin/chromoting_instance.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698