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

Side by Side Diff: content/child/webcrypto/nss/hmac_nss.cc

Issue 404733005: Replace uses of uint8 with uint8_t. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: rebase onto master Created 6 years, 5 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
« no previous file with comments | « content/child/webcrypto/nss/aes_kw_nss.cc ('k') | content/child/webcrypto/nss/key_nss.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 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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 <cryptohi.h> 5 #include <cryptohi.h>
6 #include <pk11pub.h> 6 #include <pk11pub.h>
7 #include <secerr.h> 7 #include <secerr.h>
8 #include <sechash.h> 8 #include <sechash.h>
9 9
10 #include "base/logging.h" 10 #include "base/logging.h"
11 #include "content/child/webcrypto/algorithm_implementation.h"
11 #include "content/child/webcrypto/crypto_data.h" 12 #include "content/child/webcrypto/crypto_data.h"
12 #include "content/child/webcrypto/jwk.h" 13 #include "content/child/webcrypto/jwk.h"
13 #include "content/child/webcrypto/nss/key_nss.h" 14 #include "content/child/webcrypto/nss/key_nss.h"
14 #include "content/child/webcrypto/nss/sym_key_nss.h" 15 #include "content/child/webcrypto/nss/sym_key_nss.h"
15 #include "content/child/webcrypto/nss/util_nss.h" 16 #include "content/child/webcrypto/nss/util_nss.h"
16 #include "content/child/webcrypto/status.h" 17 #include "content/child/webcrypto/status.h"
17 #include "content/child/webcrypto/webcrypto_util.h" 18 #include "content/child/webcrypto/webcrypto_util.h"
18 #include "crypto/secure_util.h" 19 #include "crypto/secure_util.h"
19 #include "third_party/WebKit/public/platform/WebCryptoAlgorithmParams.h" 20 #include "third_party/WebKit/public/platform/WebCryptoAlgorithmParams.h"
20 #include "third_party/WebKit/public/platform/WebCryptoKeyAlgorithm.h" 21 #include "third_party/WebKit/public/platform/WebCryptoKeyAlgorithm.h"
(...skipping 101 matching lines...) Expand 10 before | Expand all | Expand 10 after
122 virtual Status ImportKeyJwk(const CryptoData& key_data, 123 virtual Status ImportKeyJwk(const CryptoData& key_data,
123 const blink::WebCryptoAlgorithm& algorithm, 124 const blink::WebCryptoAlgorithm& algorithm,
124 bool extractable, 125 bool extractable,
125 blink::WebCryptoKeyUsageMask usage_mask, 126 blink::WebCryptoKeyUsageMask usage_mask,
126 blink::WebCryptoKey* key) const OVERRIDE { 127 blink::WebCryptoKey* key) const OVERRIDE {
127 const char* algorithm_name = 128 const char* algorithm_name =
128 GetJwkHmacAlgorithmName(algorithm.hmacImportParams()->hash().id()); 129 GetJwkHmacAlgorithmName(algorithm.hmacImportParams()->hash().id());
129 if (!algorithm_name) 130 if (!algorithm_name)
130 return Status::ErrorUnexpected(); 131 return Status::ErrorUnexpected();
131 132
132 std::vector<uint8> raw_data; 133 std::vector<uint8_t> raw_data;
133 Status status = ReadSecretKeyJwk( 134 Status status = ReadSecretKeyJwk(
134 key_data, algorithm_name, extractable, usage_mask, &raw_data); 135 key_data, algorithm_name, extractable, usage_mask, &raw_data);
135 if (status.IsError()) 136 if (status.IsError())
136 return status; 137 return status;
137 138
138 return ImportKeyRaw( 139 return ImportKeyRaw(
139 CryptoData(raw_data), algorithm, extractable, usage_mask, key); 140 CryptoData(raw_data), algorithm, extractable, usage_mask, key);
140 } 141 }
141 142
142 virtual Status ExportKeyRaw(const blink::WebCryptoKey& key, 143 virtual Status ExportKeyRaw(const blink::WebCryptoKey& key,
143 std::vector<uint8>* buffer) const OVERRIDE { 144 std::vector<uint8_t>* buffer) const OVERRIDE {
144 *buffer = SymKeyNss::Cast(key)->raw_key_data(); 145 *buffer = SymKeyNss::Cast(key)->raw_key_data();
145 return Status::Success(); 146 return Status::Success();
146 } 147 }
147 148
148 virtual Status ExportKeyJwk(const blink::WebCryptoKey& key, 149 virtual Status ExportKeyJwk(const blink::WebCryptoKey& key,
149 std::vector<uint8>* buffer) const OVERRIDE { 150 std::vector<uint8_t>* buffer) const OVERRIDE {
150 SymKeyNss* sym_key = SymKeyNss::Cast(key); 151 SymKeyNss* sym_key = SymKeyNss::Cast(key);
151 const std::vector<uint8>& raw_data = sym_key->raw_key_data(); 152 const std::vector<uint8_t>& raw_data = sym_key->raw_key_data();
152 153
153 const char* algorithm_name = 154 const char* algorithm_name =
154 GetJwkHmacAlgorithmName(key.algorithm().hmacParams()->hash().id()); 155 GetJwkHmacAlgorithmName(key.algorithm().hmacParams()->hash().id());
155 if (!algorithm_name) 156 if (!algorithm_name)
156 return Status::ErrorUnexpected(); 157 return Status::ErrorUnexpected();
157 158
158 WriteSecretKeyJwk(CryptoData(raw_data), 159 WriteSecretKeyJwk(CryptoData(raw_data),
159 algorithm_name, 160 algorithm_name,
160 key.extractable(), 161 key.extractable(),
161 key.usages(), 162 key.usages(),
162 buffer); 163 buffer);
163 164
164 return Status::Success(); 165 return Status::Success();
165 } 166 }
166 167
167 virtual Status Sign(const blink::WebCryptoAlgorithm& algorithm, 168 virtual Status Sign(const blink::WebCryptoAlgorithm& algorithm,
168 const blink::WebCryptoKey& key, 169 const blink::WebCryptoKey& key,
169 const CryptoData& data, 170 const CryptoData& data,
170 std::vector<uint8>* buffer) const OVERRIDE { 171 std::vector<uint8_t>* buffer) const OVERRIDE {
171 const blink::WebCryptoAlgorithm& hash = 172 const blink::WebCryptoAlgorithm& hash =
172 key.algorithm().hmacParams()->hash(); 173 key.algorithm().hmacParams()->hash();
173 PK11SymKey* sym_key = SymKeyNss::Cast(key)->key(); 174 PK11SymKey* sym_key = SymKeyNss::Cast(key)->key();
174 175
175 CK_MECHANISM_TYPE mechanism = CKM_INVALID_MECHANISM; 176 CK_MECHANISM_TYPE mechanism = CKM_INVALID_MECHANISM;
176 if (!WebCryptoHashToHMACMechanism(hash, &mechanism)) 177 if (!WebCryptoHashToHMACMechanism(hash, &mechanism))
177 return Status::ErrorUnexpected(); 178 return Status::ErrorUnexpected();
178 179
179 SECItem param_item = {siBuffer, NULL, 0}; 180 SECItem param_item = {siBuffer, NULL, 0};
180 SECItem data_item = MakeSECItemForBuffer(data); 181 SECItem data_item = MakeSECItemForBuffer(data);
(...skipping 19 matching lines...) Expand all
200 201
201 CHECK_EQ(buffer->size(), signature_item.len); 202 CHECK_EQ(buffer->size(), signature_item.len);
202 return Status::Success(); 203 return Status::Success();
203 } 204 }
204 205
205 virtual Status Verify(const blink::WebCryptoAlgorithm& algorithm, 206 virtual Status Verify(const blink::WebCryptoAlgorithm& algorithm,
206 const blink::WebCryptoKey& key, 207 const blink::WebCryptoKey& key,
207 const CryptoData& signature, 208 const CryptoData& signature,
208 const CryptoData& data, 209 const CryptoData& data,
209 bool* signature_match) const OVERRIDE { 210 bool* signature_match) const OVERRIDE {
210 std::vector<uint8> result; 211 std::vector<uint8_t> result;
211 Status status = Sign(algorithm, key, data, &result); 212 Status status = Sign(algorithm, key, data, &result);
212 213
213 if (status.IsError()) 214 if (status.IsError())
214 return status; 215 return status;
215 216
216 // Do not allow verification of truncated MACs. 217 // Do not allow verification of truncated MACs.
217 *signature_match = result.size() == signature.byte_length() && 218 *signature_match = result.size() == signature.byte_length() &&
218 crypto::SecureMemEqual(Uint8VectorStart(result), 219 crypto::SecureMemEqual(Uint8VectorStart(result),
219 signature.bytes(), 220 signature.bytes(),
220 signature.byte_length()); 221 signature.byte_length());
221 222
222 return Status::Success(); 223 return Status::Success();
223 } 224 }
224 }; 225 };
225 226
226 } // namespace 227 } // namespace
227 228
228 AlgorithmImplementation* CreatePlatformHmacImplementation() { 229 AlgorithmImplementation* CreatePlatformHmacImplementation() {
229 return new HmacImplementation; 230 return new HmacImplementation;
230 } 231 }
231 232
232 } // namespace webcrypto 233 } // namespace webcrypto
233 234
234 } // namespace content 235 } // namespace content
OLDNEW
« no previous file with comments | « content/child/webcrypto/nss/aes_kw_nss.cc ('k') | content/child/webcrypto/nss/key_nss.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698