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

Side by Side Diff: Source/modules/crypto/NormalizeAlgorithm.cpp

Issue 20475004: WebCrypto: Properly normalize algorithm for importKey(). (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 7 years, 4 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 | « Source/modules/crypto/NormalizeAlgorithm.h ('k') | Source/modules/crypto/SubtleCrypto.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2013 Google Inc. All rights reserved. 2 * Copyright (C) 2013 Google Inc. All rights reserved.
3 * 3 *
4 * Redistribution and use in source and binary forms, with or without 4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions are 5 * modification, are permitted provided that the following conditions are
6 * met: 6 * met:
7 * 7 *
8 * * Redistributions of source code must retain the above copyright 8 * * Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer. 9 * notice, this list of conditions and the following disclaimer.
10 * * Redistributions in binary form must reproduce the above 10 * * Redistributions in binary form must reproduce the above
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after
73 {"SHA-384", WebKit::WebCryptoAlgorithmIdSha384}, 73 {"SHA-384", WebKit::WebCryptoAlgorithmIdSha384},
74 {"SHA-512", WebKit::WebCryptoAlgorithmIdSha512}, 74 {"SHA-512", WebKit::WebCryptoAlgorithmIdSha512},
75 }; 75 };
76 76
77 // What operations each algorithm supports, and what parameters it expects. 77 // What operations each algorithm supports, and what parameters it expects.
78 const OperationParamsMapping operationParamsMappings[] = { 78 const OperationParamsMapping operationParamsMappings[] = {
79 // AES-CBC (section 18.10.) 79 // AES-CBC (section 18.10.)
80 {WebKit::WebCryptoAlgorithmIdAesCbc, Decrypt, WebKit::WebCryptoAlgorithmPara msTypeAesCbcParams}, 80 {WebKit::WebCryptoAlgorithmIdAesCbc, Decrypt, WebKit::WebCryptoAlgorithmPara msTypeAesCbcParams},
81 {WebKit::WebCryptoAlgorithmIdAesCbc, Encrypt, WebKit::WebCryptoAlgorithmPara msTypeAesCbcParams}, 81 {WebKit::WebCryptoAlgorithmIdAesCbc, Encrypt, WebKit::WebCryptoAlgorithmPara msTypeAesCbcParams},
82 {WebKit::WebCryptoAlgorithmIdAesCbc, GenerateKey, WebKit::WebCryptoAlgorithm ParamsTypeAesKeyGenParams}, 82 {WebKit::WebCryptoAlgorithmIdAesCbc, GenerateKey, WebKit::WebCryptoAlgorithm ParamsTypeAesKeyGenParams},
83 {WebKit::WebCryptoAlgorithmIdAesCbc, ImportKey, WebKit::WebCryptoAlgorithmPa ramsTypeNone},
83 84
84 // HMAC (section 18.14.) 85 // HMAC (section 18.14.)
85 {WebKit::WebCryptoAlgorithmIdHmac, Sign, WebKit::WebCryptoAlgorithmParamsTyp eHmacParams}, 86 {WebKit::WebCryptoAlgorithmIdHmac, Sign, WebKit::WebCryptoAlgorithmParamsTyp eHmacParams},
86 {WebKit::WebCryptoAlgorithmIdHmac, Verify, WebKit::WebCryptoAlgorithmParamsT ypeHmacParams}, 87 {WebKit::WebCryptoAlgorithmIdHmac, Verify, WebKit::WebCryptoAlgorithmParamsT ypeHmacParams},
87 {WebKit::WebCryptoAlgorithmIdHmac, GenerateKey, WebKit::WebCryptoAlgorithmPa ramsTypeHmacParams}, 88 {WebKit::WebCryptoAlgorithmIdHmac, GenerateKey, WebKit::WebCryptoAlgorithmPa ramsTypeHmacParams},
89 {WebKit::WebCryptoAlgorithmIdHmac, ImportKey, WebKit::WebCryptoAlgorithmPara msTypeHmacParams},
88 90
89 // SHA-1 (section 18.16.) 91 // SHA-1 (section 18.16.)
90 {WebKit::WebCryptoAlgorithmIdSha1, Digest, WebKit::WebCryptoAlgorithmParamsT ypeNone}, 92 {WebKit::WebCryptoAlgorithmIdSha1, Digest, WebKit::WebCryptoAlgorithmParamsT ypeNone},
91 93
92 // SHA-224 (section 18.16.) 94 // SHA-224 (section 18.16.)
93 {WebKit::WebCryptoAlgorithmIdSha224, Digest, WebKit::WebCryptoAlgorithmParam sTypeNone}, 95 {WebKit::WebCryptoAlgorithmIdSha224, Digest, WebKit::WebCryptoAlgorithmParam sTypeNone},
94 96
95 // SHA-256 (section 18.16.) 97 // SHA-256 (section 18.16.)
96 {WebKit::WebCryptoAlgorithmIdSha256, Digest, WebKit::WebCryptoAlgorithmParam sTypeNone}, 98 {WebKit::WebCryptoAlgorithmIdSha256, Digest, WebKit::WebCryptoAlgorithmParam sTypeNone},
97 99
(...skipping 158 matching lines...) Expand 10 before | Expand all | Expand 10 after
256 258
257 if (!params && paramsType != WebKit::WebCryptoAlgorithmParamsTypeNone) { 259 if (!params && paramsType != WebKit::WebCryptoAlgorithmParamsTypeNone) {
258 es.throwDOMException(NotSupportedError); 260 es.throwDOMException(NotSupportedError);
259 return false; 261 return false;
260 } 262 }
261 263
262 algorithm = WebKit::WebCryptoAlgorithm(info->algorithmId, info->algorithmNam e, params.release()); 264 algorithm = WebKit::WebCryptoAlgorithm(info->algorithmId, info->algorithmNam e, params.release());
263 return true; 265 return true;
264 } 266 }
265 267
266 bool normalizeAlgorithmForImportKey(const Dictionary& raw, WebKit::WebCryptoAlgo rithm& algorithm, ExceptionState& es)
267 {
268 const AlgorithmInfo* info = algorithmInfo(raw, es);
269 if (!info)
270 return false;
271
272 algorithm = WebKit::WebCryptoAlgorithm(info->algorithmId, info->algorithmNam e, nullptr);
273 return true;
274 }
275
276 } // namespace WebCore 268 } // namespace WebCore
OLDNEW
« no previous file with comments | « Source/modules/crypto/NormalizeAlgorithm.h ('k') | Source/modules/crypto/SubtleCrypto.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698