OLD | NEW |
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 175 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
186 | 186 |
187 String json = jsonObject->toJSONString(); | 187 String json = jsonObject->toJSONString(); |
188 jsonUtf8 = json.utf8(); | 188 jsonUtf8 = json.utf8(); |
189 return true; | 189 return true; |
190 } | 190 } |
191 | 191 |
192 SubtleCrypto::SubtleCrypto() | 192 SubtleCrypto::SubtleCrypto() |
193 { | 193 { |
194 } | 194 } |
195 | 195 |
196 ScriptPromise SubtleCrypto::encrypt(ScriptState* scriptState, const Dictionary&
rawAlgorithm, CryptoKey* key, const ArrayPiece& data) | 196 ScriptPromise SubtleCrypto::encrypt(ScriptState* scriptState, const Dictionary&
rawAlgorithm, CryptoKey* key, const DOMArrayPiece& data) |
197 { | 197 { |
198 return startCryptoOperation(scriptState, rawAlgorithm, key, WebCryptoOperati
onEncrypt, ArrayPiece(), data); | 198 return startCryptoOperation(scriptState, rawAlgorithm, key, WebCryptoOperati
onEncrypt, ArrayPiece(), data); |
199 } | 199 } |
200 | 200 |
201 ScriptPromise SubtleCrypto::decrypt(ScriptState* scriptState, const Dictionary&
rawAlgorithm, CryptoKey* key, const ArrayPiece& data) | 201 ScriptPromise SubtleCrypto::decrypt(ScriptState* scriptState, const Dictionary&
rawAlgorithm, CryptoKey* key, const DOMArrayPiece& data) |
202 { | 202 { |
203 return startCryptoOperation(scriptState, rawAlgorithm, key, WebCryptoOperati
onDecrypt, ArrayPiece(), data); | 203 return startCryptoOperation(scriptState, rawAlgorithm, key, WebCryptoOperati
onDecrypt, ArrayPiece(), data); |
204 } | 204 } |
205 | 205 |
206 ScriptPromise SubtleCrypto::sign(ScriptState* scriptState, const Dictionary& raw
Algorithm, CryptoKey* key, const ArrayPiece& data) | 206 ScriptPromise SubtleCrypto::sign(ScriptState* scriptState, const Dictionary& raw
Algorithm, CryptoKey* key, const DOMArrayPiece& data) |
207 { | 207 { |
208 return startCryptoOperation(scriptState, rawAlgorithm, key, WebCryptoOperati
onSign, ArrayPiece(), data); | 208 return startCryptoOperation(scriptState, rawAlgorithm, key, WebCryptoOperati
onSign, ArrayPiece(), data); |
209 } | 209 } |
210 | 210 |
211 ScriptPromise SubtleCrypto::verifySignature(ScriptState* scriptState, const Dict
ionary& rawAlgorithm, CryptoKey* key, const ArrayPiece& signature, const ArrayPi
ece& data) | 211 ScriptPromise SubtleCrypto::verifySignature(ScriptState* scriptState, const Dict
ionary& rawAlgorithm, CryptoKey* key, const DOMArrayPiece& signature, const DOMA
rrayPiece& data) |
212 { | 212 { |
213 return startCryptoOperation(scriptState, rawAlgorithm, key, WebCryptoOperati
onVerify, signature, data); | 213 return startCryptoOperation(scriptState, rawAlgorithm, key, WebCryptoOperati
onVerify, signature, data); |
214 } | 214 } |
215 | 215 |
216 ScriptPromise SubtleCrypto::digest(ScriptState* scriptState, const Dictionary& r
awAlgorithm, const ArrayPiece& data) | 216 ScriptPromise SubtleCrypto::digest(ScriptState* scriptState, const Dictionary& r
awAlgorithm, const DOMArrayPiece& data) |
217 { | 217 { |
218 return startCryptoOperation(scriptState, rawAlgorithm, 0, WebCryptoOperation
Digest, ArrayPiece(), data); | 218 return startCryptoOperation(scriptState, rawAlgorithm, 0, WebCryptoOperation
Digest, ArrayPiece(), data); |
219 } | 219 } |
220 | 220 |
221 ScriptPromise SubtleCrypto::generateKey(ScriptState* scriptState, const Dictiona
ry& rawAlgorithm, bool extractable, const Vector<String>& rawKeyUsages) | 221 ScriptPromise SubtleCrypto::generateKey(ScriptState* scriptState, const Dictiona
ry& rawAlgorithm, bool extractable, const Vector<String>& rawKeyUsages) |
222 { | 222 { |
223 RefPtr<CryptoResultImpl> result = CryptoResultImpl::create(scriptState); | 223 RefPtr<CryptoResultImpl> result = CryptoResultImpl::create(scriptState); |
224 ScriptPromise promise = result->promise(); | 224 ScriptPromise promise = result->promise(); |
225 | 225 |
226 if (!canAccessWebCrypto(scriptState, result.get())) | 226 if (!canAccessWebCrypto(scriptState, result.get())) |
227 return promise; | 227 return promise; |
228 | 228 |
229 WebCryptoKeyUsageMask keyUsages; | 229 WebCryptoKeyUsageMask keyUsages; |
230 if (!CryptoKey::parseUsageMask(rawKeyUsages, keyUsages, result.get())) | 230 if (!CryptoKey::parseUsageMask(rawKeyUsages, keyUsages, result.get())) |
231 return promise; | 231 return promise; |
232 | 232 |
233 WebCryptoAlgorithm algorithm; | 233 WebCryptoAlgorithm algorithm; |
234 if (!parseAlgorithm(rawAlgorithm, WebCryptoOperationGenerateKey, algorithm,
result.get())) | 234 if (!parseAlgorithm(rawAlgorithm, WebCryptoOperationGenerateKey, algorithm,
result.get())) |
235 return promise; | 235 return promise; |
236 | 236 |
237 Platform::current()->crypto()->generateKey(algorithm, extractable, keyUsages
, result->result()); | 237 Platform::current()->crypto()->generateKey(algorithm, extractable, keyUsages
, result->result()); |
238 return promise; | 238 return promise; |
239 } | 239 } |
240 | 240 |
241 ScriptPromise SubtleCrypto::importKey(ScriptState* scriptState, const String& ra
wFormat, const ArrayPiece& keyData, const Dictionary& rawAlgorithm, bool extract
able, const Vector<String>& rawKeyUsages) | 241 ScriptPromise SubtleCrypto::importKey(ScriptState* scriptState, const String& ra
wFormat, const DOMArrayPiece& keyData, const Dictionary& rawAlgorithm, bool extr
actable, const Vector<String>& rawKeyUsages) |
242 { | 242 { |
243 RefPtr<CryptoResultImpl> result = CryptoResultImpl::create(scriptState); | 243 RefPtr<CryptoResultImpl> result = CryptoResultImpl::create(scriptState); |
244 ScriptPromise promise = result->promise(); | 244 ScriptPromise promise = result->promise(); |
245 | 245 |
246 if (!canAccessWebCrypto(scriptState, result.get())) | 246 if (!canAccessWebCrypto(scriptState, result.get())) |
247 return promise; | 247 return promise; |
248 | 248 |
249 if (!ensureNotNull(keyData, "keyData", result.get())) | 249 if (!ensureNotNull(keyData, "keyData", result.get())) |
250 return promise; | 250 return promise; |
251 | 251 |
(...skipping 102 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
354 return promise; | 354 return promise; |
355 } | 355 } |
356 | 356 |
357 if (!wrappingKey->canBeUsedForAlgorithm(wrapAlgorithm, WebCryptoOperationWra
pKey, result.get())) | 357 if (!wrappingKey->canBeUsedForAlgorithm(wrapAlgorithm, WebCryptoOperationWra
pKey, result.get())) |
358 return promise; | 358 return promise; |
359 | 359 |
360 Platform::current()->crypto()->wrapKey(format, key->key(), wrappingKey->key(
), wrapAlgorithm, result->result()); | 360 Platform::current()->crypto()->wrapKey(format, key->key(), wrappingKey->key(
), wrapAlgorithm, result->result()); |
361 return promise; | 361 return promise; |
362 } | 362 } |
363 | 363 |
364 ScriptPromise SubtleCrypto::unwrapKey(ScriptState* scriptState, const String& ra
wFormat, const ArrayPiece& wrappedKey, CryptoKey* unwrappingKey, const Dictionar
y& rawUnwrapAlgorithm, const Dictionary& rawUnwrappedKeyAlgorithm, bool extracta
ble, const Vector<String>& rawKeyUsages) | 364 ScriptPromise SubtleCrypto::unwrapKey(ScriptState* scriptState, const String& ra
wFormat, const DOMArrayPiece& wrappedKey, CryptoKey* unwrappingKey, const Dictio
nary& rawUnwrapAlgorithm, const Dictionary& rawUnwrappedKeyAlgorithm, bool extra
ctable, const Vector<String>& rawKeyUsages) |
365 { | 365 { |
366 RefPtr<CryptoResultImpl> result = CryptoResultImpl::create(scriptState); | 366 RefPtr<CryptoResultImpl> result = CryptoResultImpl::create(scriptState); |
367 ScriptPromise promise = result->promise(); | 367 ScriptPromise promise = result->promise(); |
368 | 368 |
369 if (!canAccessWebCrypto(scriptState, result.get())) | 369 if (!canAccessWebCrypto(scriptState, result.get())) |
370 return promise; | 370 return promise; |
371 | 371 |
372 if (!ensureNotNull(wrappedKey, "wrappedKey", result.get())) | 372 if (!ensureNotNull(wrappedKey, "wrappedKey", result.get())) |
373 return promise; | 373 return promise; |
374 if (!ensureNotNull(unwrappingKey, "unwrappingKey", result.get())) | 374 if (!ensureNotNull(unwrappingKey, "unwrappingKey", result.get())) |
(...skipping 16 matching lines...) Expand all Loading... |
391 return promise; | 391 return promise; |
392 | 392 |
393 if (!unwrappingKey->canBeUsedForAlgorithm(unwrapAlgorithm, WebCryptoOperatio
nUnwrapKey, result.get())) | 393 if (!unwrappingKey->canBeUsedForAlgorithm(unwrapAlgorithm, WebCryptoOperatio
nUnwrapKey, result.get())) |
394 return promise; | 394 return promise; |
395 | 395 |
396 Platform::current()->crypto()->unwrapKey(format, wrappedKey.bytes(), wrapped
Key.byteLength(), unwrappingKey->key(), unwrapAlgorithm, unwrappedKeyAlgorithm,
extractable, keyUsages, result->result()); | 396 Platform::current()->crypto()->unwrapKey(format, wrappedKey.bytes(), wrapped
Key.byteLength(), unwrappingKey->key(), unwrapAlgorithm, unwrappedKeyAlgorithm,
extractable, keyUsages, result->result()); |
397 return promise; | 397 return promise; |
398 } | 398 } |
399 | 399 |
400 } // namespace blink | 400 } // namespace blink |
OLD | NEW |