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

Side by Side Diff: third_party/WebKit/Source/modules/crypto/SubtleCrypto.cpp

Issue 2972023002: Deduplicate CopyBytes in modules/crypto (Closed)
Patch Set: Dropped the "test in jumbo" code Created 3 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
« no previous file with comments | « third_party/WebKit/Source/modules/crypto/NormalizeAlgorithm.cpp ('k') | no next file » | 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 21 matching lines...) Expand all
32 32
33 #include "bindings/core/v8/Dictionary.h" 33 #include "bindings/core/v8/Dictionary.h"
34 #include "core/dom/DOMArrayBuffer.h" 34 #include "core/dom/DOMArrayBuffer.h"
35 #include "core/dom/DOMArrayBufferView.h" 35 #include "core/dom/DOMArrayBufferView.h"
36 #include "core/dom/DOMArrayPiece.h" 36 #include "core/dom/DOMArrayPiece.h"
37 #include "core/dom/ExecutionContext.h" 37 #include "core/dom/ExecutionContext.h"
38 #include "core/frame/Deprecation.h" 38 #include "core/frame/Deprecation.h"
39 #include "modules/crypto/CryptoHistograms.h" 39 #include "modules/crypto/CryptoHistograms.h"
40 #include "modules/crypto/CryptoKey.h" 40 #include "modules/crypto/CryptoKey.h"
41 #include "modules/crypto/CryptoResultImpl.h" 41 #include "modules/crypto/CryptoResultImpl.h"
42 #include "modules/crypto/CryptoUtilities.h"
42 #include "modules/crypto/NormalizeAlgorithm.h" 43 #include "modules/crypto/NormalizeAlgorithm.h"
43 #include "platform/json/JSONValues.h" 44 #include "platform/json/JSONValues.h"
44 #include "public/platform/Platform.h" 45 #include "public/platform/Platform.h"
45 #include "public/platform/WebCrypto.h" 46 #include "public/platform/WebCrypto.h"
46 #include "public/platform/WebCryptoAlgorithm.h" 47 #include "public/platform/WebCryptoAlgorithm.h"
47 48
48 namespace blink { 49 namespace blink {
49 50
50 static bool ParseAlgorithm(const AlgorithmIdentifier& raw, 51 static bool ParseAlgorithm(const AlgorithmIdentifier& raw,
51 WebCryptoOperation op, 52 WebCryptoOperation op,
(...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after
147 const char* const kPropertyNames[] = {"d", "n", "e", "p", "q", "dp", 148 const char* const kPropertyNames[] = {"d", "n", "e", "p", "q", "dp",
148 "dq", "qi", "k", "crv", "x", "y"}; 149 "dq", "qi", "k", "crv", "x", "y"};
149 for (unsigned i = 0; i < WTF_ARRAY_LENGTH(kPropertyNames); ++i) 150 for (unsigned i = 0; i < WTF_ARRAY_LENGTH(kPropertyNames); ++i)
150 CopyStringProperty(kPropertyNames[i], dict, json_object.get()); 151 CopyStringProperty(kPropertyNames[i], dict, json_object.get());
151 152
152 String json = json_object->ToJSONString(); 153 String json = json_object->ToJSONString();
153 json_utf8 = WebVector<uint8_t>(json.Utf8().data(), json.Utf8().length()); 154 json_utf8 = WebVector<uint8_t>(json.Utf8().data(), json.Utf8().length());
154 return true; 155 return true;
155 } 156 }
156 157
157 static WebVector<uint8_t> CopyBytes(const DOMArrayPiece& source) {
158 return WebVector<uint8_t>(static_cast<uint8_t*>(source.Data()),
159 source.ByteLength());
160 }
161
162 SubtleCrypto::SubtleCrypto() {} 158 SubtleCrypto::SubtleCrypto() {}
163 159
164 ScriptPromise SubtleCrypto::encrypt(ScriptState* script_state, 160 ScriptPromise SubtleCrypto::encrypt(ScriptState* script_state,
165 const AlgorithmIdentifier& raw_algorithm, 161 const AlgorithmIdentifier& raw_algorithm,
166 CryptoKey* key, 162 CryptoKey* key,
167 const BufferSource& raw_data) { 163 const BufferSource& raw_data) {
168 // Method described by: 164 // Method described by:
169 // https://w3c.github.io/webcrypto/Overview.html#dfn-SubtleCrypto-method-encry pt 165 // https://w3c.github.io/webcrypto/Overview.html#dfn-SubtleCrypto-method-encry pt
170 166
171 CryptoResultImpl* result = CryptoResultImpl::Create(script_state); 167 CryptoResultImpl* result = CryptoResultImpl::Create(script_state);
(...skipping 553 matching lines...) Expand 10 before | Expand all | Expand 10 after
725 normalized_algorithm, base_key->Key()); 721 normalized_algorithm, base_key->Key());
726 HistogramAlgorithm(ExecutionContext::From(script_state), 722 HistogramAlgorithm(ExecutionContext::From(script_state),
727 normalized_derived_key_algorithm); 723 normalized_derived_key_algorithm);
728 Platform::Current()->Crypto()->DeriveKey( 724 Platform::Current()->Crypto()->DeriveKey(
729 normalized_algorithm, base_key->Key(), normalized_derived_key_algorithm, 725 normalized_algorithm, base_key->Key(), normalized_derived_key_algorithm,
730 key_length_algorithm, extractable, key_usages, result->Result()); 726 key_length_algorithm, extractable, key_usages, result->Result());
731 return promise; 727 return promise;
732 } 728 }
733 729
734 } // namespace blink 730 } // namespace blink
OLDNEW
« no previous file with comments | « third_party/WebKit/Source/modules/crypto/NormalizeAlgorithm.cpp ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698