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

Side by Side Diff: crypto/signature_creator_unittest.cc

Issue 1679873005: Switch SignatureVerifier to taking an algorithm enum. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: fix iOS build Created 4 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
« no previous file with comments | « crypto/ec_signature_creator_unittest.cc ('k') | crypto/signature_verifier.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 #include <stdint.h> 5 #include <stdint.h>
6 6
7 #include <vector> 7 #include <vector>
8 8
9 #include "base/memory/scoped_ptr.h" 9 #include "base/memory/scoped_ptr.h"
10 #include "base/sha1.h" 10 #include "base/sha1.h"
11 #include "crypto/rsa_private_key.h" 11 #include "crypto/rsa_private_key.h"
12 #include "crypto/sha2.h" 12 #include "crypto/sha2.h"
13 #include "crypto/signature_creator.h" 13 #include "crypto/signature_creator.h"
14 #include "crypto/signature_verifier.h" 14 #include "crypto/signature_verifier.h"
15 #include "testing/gtest/include/gtest/gtest.h" 15 #include "testing/gtest/include/gtest/gtest.h"
16 16
17 namespace {
18
19 // This is the algorithm ID for SHA-1 with RSA encryption.
20 const uint8_t kSHA1WithRSAAlgorithmID[] = {0x30, 0x0d, 0x06, 0x09, 0x2a,
21 0x86, 0x48, 0x86, 0xf7, 0x0d,
22 0x01, 0x01, 0x05, 0x05, 0x00};
23
24 // This is the algorithm ID for SHA-1 with RSA encryption.
25 const uint8_t kSHA256WithRSAAlgorithmID[] = {0x30, 0x0d, 0x06, 0x09, 0x2a,
26 0x86, 0x48, 0x86, 0xf7, 0x0d,
27 0x01, 0x01, 0x0B, 0x05, 0x00};
28 }
29
30 TEST(SignatureCreatorTest, BasicTest) { 17 TEST(SignatureCreatorTest, BasicTest) {
31 // Do a verify round trip. 18 // Do a verify round trip.
32 scoped_ptr<crypto::RSAPrivateKey> key_original( 19 scoped_ptr<crypto::RSAPrivateKey> key_original(
33 crypto::RSAPrivateKey::Create(1024)); 20 crypto::RSAPrivateKey::Create(1024));
34 ASSERT_TRUE(key_original.get()); 21 ASSERT_TRUE(key_original.get());
35 22
36 std::vector<uint8_t> key_info; 23 std::vector<uint8_t> key_info;
37 key_original->ExportPrivateKey(&key_info); 24 key_original->ExportPrivateKey(&key_info);
38 scoped_ptr<crypto::RSAPrivateKey> key( 25 scoped_ptr<crypto::RSAPrivateKey> key(
39 crypto::RSAPrivateKey::CreateFromPrivateKeyInfo(key_info)); 26 crypto::RSAPrivateKey::CreateFromPrivateKeyInfo(key_info));
40 ASSERT_TRUE(key.get()); 27 ASSERT_TRUE(key.get());
41 28
42 scoped_ptr<crypto::SignatureCreator> signer( 29 scoped_ptr<crypto::SignatureCreator> signer(
43 crypto::SignatureCreator::Create(key.get(), 30 crypto::SignatureCreator::Create(key.get(),
44 crypto::SignatureCreator::SHA1)); 31 crypto::SignatureCreator::SHA1));
45 ASSERT_TRUE(signer.get()); 32 ASSERT_TRUE(signer.get());
46 33
47 std::string data("Hello, World!"); 34 std::string data("Hello, World!");
48 ASSERT_TRUE(signer->Update(reinterpret_cast<const uint8_t*>(data.c_str()), 35 ASSERT_TRUE(signer->Update(reinterpret_cast<const uint8_t*>(data.c_str()),
49 data.size())); 36 data.size()));
50 37
51 std::vector<uint8_t> signature; 38 std::vector<uint8_t> signature;
52 ASSERT_TRUE(signer->Final(&signature)); 39 ASSERT_TRUE(signer->Final(&signature));
53 40
54 std::vector<uint8_t> public_key_info; 41 std::vector<uint8_t> public_key_info;
55 ASSERT_TRUE(key_original->ExportPublicKey(&public_key_info)); 42 ASSERT_TRUE(key_original->ExportPublicKey(&public_key_info));
56 43
57 crypto::SignatureVerifier verifier; 44 crypto::SignatureVerifier verifier;
58 ASSERT_TRUE(verifier.VerifyInit( 45 ASSERT_TRUE(verifier.VerifyInit(
59 kSHA1WithRSAAlgorithmID, sizeof(kSHA1WithRSAAlgorithmID), 46 crypto::SignatureVerifier::RSA_PKCS1_SHA1, &signature.front(),
60 &signature.front(), signature.size(), 47 signature.size(), &public_key_info.front(), public_key_info.size()));
61 &public_key_info.front(), public_key_info.size()));
62 48
63 verifier.VerifyUpdate(reinterpret_cast<const uint8_t*>(data.c_str()), 49 verifier.VerifyUpdate(reinterpret_cast<const uint8_t*>(data.c_str()),
64 data.size()); 50 data.size());
65 ASSERT_TRUE(verifier.VerifyFinal()); 51 ASSERT_TRUE(verifier.VerifyFinal());
66 } 52 }
67 53
68 TEST(SignatureCreatorTest, SignDigestTest) { 54 TEST(SignatureCreatorTest, SignDigestTest) {
69 // Do a verify round trip. 55 // Do a verify round trip.
70 scoped_ptr<crypto::RSAPrivateKey> key_original( 56 scoped_ptr<crypto::RSAPrivateKey> key_original(
71 crypto::RSAPrivateKey::Create(1024)); 57 crypto::RSAPrivateKey::Create(1024));
(...skipping 12 matching lines...) Expand all
84 ASSERT_TRUE(crypto::SignatureCreator::Sign( 70 ASSERT_TRUE(crypto::SignatureCreator::Sign(
85 key.get(), crypto::SignatureCreator::SHA1, 71 key.get(), crypto::SignatureCreator::SHA1,
86 reinterpret_cast<const uint8_t*>(sha1.c_str()), sha1.size(), &signature)); 72 reinterpret_cast<const uint8_t*>(sha1.c_str()), sha1.size(), &signature));
87 73
88 std::vector<uint8_t> public_key_info; 74 std::vector<uint8_t> public_key_info;
89 ASSERT_TRUE(key_original->ExportPublicKey(&public_key_info)); 75 ASSERT_TRUE(key_original->ExportPublicKey(&public_key_info));
90 76
91 // Verify the input data. 77 // Verify the input data.
92 crypto::SignatureVerifier verifier; 78 crypto::SignatureVerifier verifier;
93 ASSERT_TRUE(verifier.VerifyInit( 79 ASSERT_TRUE(verifier.VerifyInit(
94 kSHA1WithRSAAlgorithmID, sizeof(kSHA1WithRSAAlgorithmID), 80 crypto::SignatureVerifier::RSA_PKCS1_SHA1, &signature.front(),
95 &signature.front(), signature.size(), 81 signature.size(), &public_key_info.front(), public_key_info.size()));
96 &public_key_info.front(), public_key_info.size()));
97 82
98 verifier.VerifyUpdate(reinterpret_cast<const uint8_t*>(data.c_str()), 83 verifier.VerifyUpdate(reinterpret_cast<const uint8_t*>(data.c_str()),
99 data.size()); 84 data.size());
100 ASSERT_TRUE(verifier.VerifyFinal()); 85 ASSERT_TRUE(verifier.VerifyFinal());
101 } 86 }
102 87
103 TEST(SignatureCreatorTest, SignSHA256DigestTest) { 88 TEST(SignatureCreatorTest, SignSHA256DigestTest) {
104 // Do a verify round trip. 89 // Do a verify round trip.
105 scoped_ptr<crypto::RSAPrivateKey> key_original( 90 scoped_ptr<crypto::RSAPrivateKey> key_original(
106 crypto::RSAPrivateKey::Create(1024)); 91 crypto::RSAPrivateKey::Create(1024));
(...skipping 13 matching lines...) Expand all
120 key.get(), crypto::SignatureCreator::HashAlgorithm::SHA256, 105 key.get(), crypto::SignatureCreator::HashAlgorithm::SHA256,
121 reinterpret_cast<const uint8_t*>(sha256.c_str()), sha256.size(), 106 reinterpret_cast<const uint8_t*>(sha256.c_str()), sha256.size(),
122 &signature)); 107 &signature));
123 108
124 std::vector<uint8_t> public_key_info; 109 std::vector<uint8_t> public_key_info;
125 ASSERT_TRUE(key_original->ExportPublicKey(&public_key_info)); 110 ASSERT_TRUE(key_original->ExportPublicKey(&public_key_info));
126 111
127 // Verify the input data. 112 // Verify the input data.
128 crypto::SignatureVerifier verifier; 113 crypto::SignatureVerifier verifier;
129 ASSERT_TRUE(verifier.VerifyInit( 114 ASSERT_TRUE(verifier.VerifyInit(
130 kSHA256WithRSAAlgorithmID, sizeof(kSHA256WithRSAAlgorithmID), 115 crypto::SignatureVerifier::RSA_PKCS1_SHA256, &signature.front(),
131 &signature.front(), signature.size(), 116 signature.size(), &public_key_info.front(), public_key_info.size()));
132 &public_key_info.front(), public_key_info.size()));
133 117
134 verifier.VerifyUpdate(reinterpret_cast<const uint8_t*>(data.c_str()), 118 verifier.VerifyUpdate(reinterpret_cast<const uint8_t*>(data.c_str()),
135 data.size()); 119 data.size());
136 ASSERT_TRUE(verifier.VerifyFinal()); 120 ASSERT_TRUE(verifier.VerifyFinal());
137 } 121 }
OLDNEW
« no previous file with comments | « crypto/ec_signature_creator_unittest.cc ('k') | crypto/signature_verifier.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698