| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2010 Google Inc. All rights reserved. | 2 * Copyright (C) 2010 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 203 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 214 // fills it
with the last length elements and numProperties name,value pairs pushed onto des
erialization stack | 214 // fills it
with the last length elements and numProperties name,value pairs pushed onto des
erialization stack |
| 215 RegExpTag = 'R', // pattern:RawString, flags:uint32_t -> RegExp (ref) | 215 RegExpTag = 'R', // pattern:RawString, flags:uint32_t -> RegExp (ref) |
| 216 ArrayBufferTag = 'B', // byteLength:uint32_t, data:byte[byteLength] -> Array
Buffer (ref) | 216 ArrayBufferTag = 'B', // byteLength:uint32_t, data:byte[byteLength] -> Array
Buffer (ref) |
| 217 ArrayBufferTransferTag = 't', // index:uint32_t -> ArrayBuffer. For ArrayBuf
fer transfer | 217 ArrayBufferTransferTag = 't', // index:uint32_t -> ArrayBuffer. For ArrayBuf
fer transfer |
| 218 ArrayBufferViewTag = 'V', // subtag:byte, byteOffset:uint32_t, byteLength:ui
nt32_t -> ArrayBufferView (ref). Consumes an ArrayBuffer from the top of the des
erialization stack. | 218 ArrayBufferViewTag = 'V', // subtag:byte, byteOffset:uint32_t, byteLength:ui
nt32_t -> ArrayBufferView (ref). Consumes an ArrayBuffer from the top of the des
erialization stack. |
| 219 CryptoKeyTag = 'K', // subtag:byte, props, usages:uint32_t, keyDataLength:ui
nt32_t, keyData:byte[keyDataLength] | 219 CryptoKeyTag = 'K', // subtag:byte, props, usages:uint32_t, keyDataLength:ui
nt32_t, keyData:byte[keyDataLength] |
| 220 // If subtag=AesKeyTag: | 220 // If subtag=AesKeyTag: |
| 221 // props = keyLengthBytes:uint32_t, algorithmId:ui
nt32_t | 221 // props = keyLengthBytes:uint32_t, algorithmId:ui
nt32_t |
| 222 // If subtag=HmacKeyTag: | 222 // If subtag=HmacKeyTag: |
| 223 // props = keyLengthBytes:uint32_t, hashId:uint32_
t | 223 // props = keyLengthBytes:uint32_t, hashId:uint32_
t |
| 224 // If subtag=RsaKeyTag: |
| 225 // props = algorithmId:uint32_t, type:uint32_t, mo
dulusLengthBits:uint32_t, publicExponentLength:uint32_t, publicExponent:byte[pub
licExponentLength] |
| 224 // If subtag=RsaHashedKeyTag: | 226 // If subtag=RsaHashedKeyTag: |
| 225 // props = algorithmId:uint32_t, type:uint32_t, mo
dulusLengthBits:uint32_t, publicExponentLength:uint32_t, publicExponent:byte[pub
licExponentLength], hashId:uint32_t | 227 // props = <same as for RsaKeyTag>, hashId:uint32_
t |
| 226 ObjectReferenceTag = '^', // ref:uint32_t -> reference table[ref] | 228 ObjectReferenceTag = '^', // ref:uint32_t -> reference table[ref] |
| 227 GenerateFreshObjectTag = 'o', // -> empty object allocated an object ID and
pushed onto the open stack (ref) | 229 GenerateFreshObjectTag = 'o', // -> empty object allocated an object ID and
pushed onto the open stack (ref) |
| 228 GenerateFreshSparseArrayTag = 'a', // length:uint32_t -> empty array[length]
allocated an object ID and pushed onto the open stack (ref) | 230 GenerateFreshSparseArrayTag = 'a', // length:uint32_t -> empty array[length]
allocated an object ID and pushed onto the open stack (ref) |
| 229 GenerateFreshDenseArrayTag = 'A', // length:uint32_t -> empty array[length]
allocated an object ID and pushed onto the open stack (ref) | 231 GenerateFreshDenseArrayTag = 'A', // length:uint32_t -> empty array[length]
allocated an object ID and pushed onto the open stack (ref) |
| 230 ReferenceCountTag = '?', // refTableSize:uint32_t -> If the reference table
is not refTableSize big, fails. | 232 ReferenceCountTag = '?', // refTableSize:uint32_t -> If the reference table
is not refTableSize big, fails. |
| 231 StringObjectTag = 's', // string:RawString -> new String(string) (ref) | 233 StringObjectTag = 's', // string:RawString -> new String(string) (ref) |
| 232 NumberObjectTag = 'n', // value:double -> new Number(value) (ref) | 234 NumberObjectTag = 'n', // value:double -> new Number(value) (ref) |
| 233 TrueObjectTag = 'y', // new Boolean(true) (ref) | 235 TrueObjectTag = 'y', // new Boolean(true) (ref) |
| 234 FalseObjectTag = 'x', // new Boolean(false) (ref) | 236 FalseObjectTag = 'x', // new Boolean(false) (ref) |
| 235 VersionTag = 0xFF // version:uint32_t -> Uses this as the file version. | 237 VersionTag = 0xFF // version:uint32_t -> Uses this as the file version. |
| 236 }; | 238 }; |
| 237 | 239 |
| 238 enum ArrayBufferViewSubTag { | 240 enum ArrayBufferViewSubTag { |
| 239 ByteArrayTag = 'b', | 241 ByteArrayTag = 'b', |
| 240 UnsignedByteArrayTag = 'B', | 242 UnsignedByteArrayTag = 'B', |
| 241 UnsignedByteClampedArrayTag = 'C', | 243 UnsignedByteClampedArrayTag = 'C', |
| 242 ShortArrayTag = 'w', | 244 ShortArrayTag = 'w', |
| 243 UnsignedShortArrayTag = 'W', | 245 UnsignedShortArrayTag = 'W', |
| 244 IntArrayTag = 'd', | 246 IntArrayTag = 'd', |
| 245 UnsignedIntArrayTag = 'D', | 247 UnsignedIntArrayTag = 'D', |
| 246 FloatArrayTag = 'f', | 248 FloatArrayTag = 'f', |
| 247 DoubleArrayTag = 'F', | 249 DoubleArrayTag = 'F', |
| 248 DataViewTag = '?' | 250 DataViewTag = '?' |
| 249 }; | 251 }; |
| 250 | 252 |
| 251 enum CryptoKeySubTag { | 253 enum CryptoKeySubTag { |
| 252 AesKeyTag = 1, | 254 AesKeyTag = 1, |
| 253 HmacKeyTag = 2, | 255 HmacKeyTag = 2, |
| 254 // ID 3 was used by RsaKeyTag, while still behind experimental flag. | 256 RsaKeyTag = 3, |
| 255 RsaHashedKeyTag = 4, | 257 RsaHashedKeyTag = 4, |
| 256 // Maximum allowed value is 255 | 258 // Maximum allowed value is 255 |
| 257 }; | 259 }; |
| 258 | 260 |
| 259 enum AssymetricCryptoKeyType { | 261 enum AssymetricCryptoKeyType { |
| 260 PublicKeyType = 1, | 262 PublicKeyType = 1, |
| 261 PrivateKeyType = 2, | 263 PrivateKeyType = 2, |
| 262 // Maximum allowed value is 2^32-1 | 264 // Maximum allowed value is 2^32-1 |
| 263 }; | 265 }; |
| 264 | 266 |
| 265 enum CryptoKeyAlgorithmTag { | 267 enum CryptoKeyAlgorithmTag { |
| 266 AesCbcTag = 1, | 268 AesCbcTag = 1, |
| 267 HmacTag = 2, | 269 HmacTag = 2, |
| 268 RsaSsaPkcs1v1_5Tag = 3, | 270 RsaSsaPkcs1v1_5Tag = 3, |
| 269 // ID 4 was used by RsaEs, while still behind experimental flag. | 271 RsaEsPkcs1v1_5Tag = 4, |
| 270 Sha1Tag = 5, | 272 Sha1Tag = 5, |
| 271 Sha256Tag = 6, | 273 Sha256Tag = 6, |
| 272 Sha384Tag = 7, | 274 Sha384Tag = 7, |
| 273 Sha512Tag = 8, | 275 Sha512Tag = 8, |
| 274 AesGcmTag = 9, | 276 AesGcmTag = 9, |
| 275 RsaOaepTag = 10, | 277 RsaOaepTag = 10, |
| 276 AesCtrTag = 11, | 278 AesCtrTag = 11, |
| 277 AesKwTag = 12, | 279 AesKwTag = 12, |
| 278 // Maximum allowed value is 2^32-1 | 280 // Maximum allowed value is 2^32-1 |
| 279 }; | 281 }; |
| (...skipping 228 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 508 { | 510 { |
| 509 append(static_cast<uint8_t>(CryptoKeyTag)); | 511 append(static_cast<uint8_t>(CryptoKeyTag)); |
| 510 | 512 |
| 511 switch (key.algorithm().paramsType()) { | 513 switch (key.algorithm().paramsType()) { |
| 512 case blink::WebCryptoKeyAlgorithmParamsTypeAes: | 514 case blink::WebCryptoKeyAlgorithmParamsTypeAes: |
| 513 doWriteAesKey(key); | 515 doWriteAesKey(key); |
| 514 break; | 516 break; |
| 515 case blink::WebCryptoKeyAlgorithmParamsTypeHmac: | 517 case blink::WebCryptoKeyAlgorithmParamsTypeHmac: |
| 516 doWriteHmacKey(key); | 518 doWriteHmacKey(key); |
| 517 break; | 519 break; |
| 520 case blink::WebCryptoKeyAlgorithmParamsTypeRsa: |
| 518 case blink::WebCryptoKeyAlgorithmParamsTypeRsaHashed: | 521 case blink::WebCryptoKeyAlgorithmParamsTypeRsaHashed: |
| 519 doWriteRsaHashedKey(key); | 522 doWriteRsaKey(key); |
| 520 break; | 523 break; |
| 521 case blink::WebCryptoKeyAlgorithmParamsTypeNone: | 524 case blink::WebCryptoKeyAlgorithmParamsTypeNone: |
| 522 ASSERT_NOT_REACHED(); | 525 ASSERT_NOT_REACHED(); |
| 523 return false; | 526 return false; |
| 524 } | 527 } |
| 525 | 528 |
| 526 doWriteKeyUsages(key.usages(), key.extractable()); | 529 doWriteKeyUsages(key.usages(), key.extractable()); |
| 527 | 530 |
| 528 blink::WebVector<uint8_t> keyData; | 531 blink::WebVector<uint8_t> keyData; |
| 529 if (!blink::Platform::current()->crypto()->serializeKeyForClone(key, key
Data)) | 532 if (!blink::Platform::current()->crypto()->serializeKeyForClone(key, key
Data)) |
| (...skipping 190 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 720 ASSERT(key.algorithm().paramsType() == blink::WebCryptoKeyAlgorithmParam
sTypeAes); | 723 ASSERT(key.algorithm().paramsType() == blink::WebCryptoKeyAlgorithmParam
sTypeAes); |
| 721 | 724 |
| 722 append(static_cast<uint8_t>(AesKeyTag)); | 725 append(static_cast<uint8_t>(AesKeyTag)); |
| 723 doWriteAlgorithmId(key.algorithm().id()); | 726 doWriteAlgorithmId(key.algorithm().id()); |
| 724 // Converting the key length from bits to bytes is lossless and makes | 727 // Converting the key length from bits to bytes is lossless and makes |
| 725 // it fit in 1 byte. | 728 // it fit in 1 byte. |
| 726 ASSERT(!(key.algorithm().aesParams()->lengthBits() % 8)); | 729 ASSERT(!(key.algorithm().aesParams()->lengthBits() % 8)); |
| 727 doWriteUint32(key.algorithm().aesParams()->lengthBits() / 8); | 730 doWriteUint32(key.algorithm().aesParams()->lengthBits() / 8); |
| 728 } | 731 } |
| 729 | 732 |
| 730 void doWriteRsaHashedKey(const blink::WebCryptoKey& key) | 733 void doWriteRsaKey(const blink::WebCryptoKey& key) |
| 731 { | 734 { |
| 732 ASSERT(key.algorithm().rsaHashedParams()); | 735 if (key.algorithm().rsaHashedParams()) |
| 733 append(static_cast<uint8_t>(RsaHashedKeyTag)); | 736 append(static_cast<uint8_t>(RsaHashedKeyTag)); |
| 737 else |
| 738 append(static_cast<uint8_t>(RsaKeyTag)); |
| 734 | 739 |
| 735 doWriteAlgorithmId(key.algorithm().id()); | 740 doWriteAlgorithmId(key.algorithm().id()); |
| 736 | 741 |
| 737 switch (key.type()) { | 742 switch (key.type()) { |
| 738 case blink::WebCryptoKeyTypePublic: | 743 case blink::WebCryptoKeyTypePublic: |
| 739 doWriteUint32(PublicKeyType); | 744 doWriteUint32(PublicKeyType); |
| 740 break; | 745 break; |
| 741 case blink::WebCryptoKeyTypePrivate: | 746 case blink::WebCryptoKeyTypePrivate: |
| 742 doWriteUint32(PrivateKeyType); | 747 doWriteUint32(PrivateKeyType); |
| 743 break; | 748 break; |
| 744 case blink::WebCryptoKeyTypeSecret: | 749 case blink::WebCryptoKeyTypeSecret: |
| 745 ASSERT_NOT_REACHED(); | 750 ASSERT_NOT_REACHED(); |
| 746 } | 751 } |
| 747 | 752 |
| 748 const blink::WebCryptoRsaHashedKeyAlgorithmParams* params = key.algorith
m().rsaHashedParams(); | 753 const blink::WebCryptoRsaKeyAlgorithmParams* params = key.algorithm().rs
aParams(); |
| 749 doWriteUint32(params->modulusLengthBits()); | 754 doWriteUint32(params->modulusLengthBits()); |
| 750 doWriteUint32(params->publicExponent().size()); | 755 doWriteUint32(params->publicExponent().size()); |
| 751 append(params->publicExponent().data(), params->publicExponent().size())
; | 756 append(params->publicExponent().data(), params->publicExponent().size())
; |
| 752 doWriteAlgorithmId(key.algorithm().rsaHashedParams()->hash().id()); | 757 |
| 758 if (key.algorithm().rsaHashedParams()) |
| 759 doWriteAlgorithmId(key.algorithm().rsaHashedParams()->hash().id()); |
| 753 } | 760 } |
| 754 | 761 |
| 755 void doWriteAlgorithmId(blink::WebCryptoAlgorithmId id) | 762 void doWriteAlgorithmId(blink::WebCryptoAlgorithmId id) |
| 756 { | 763 { |
| 757 switch (id) { | 764 switch (id) { |
| 758 case blink::WebCryptoAlgorithmIdAesCbc: | 765 case blink::WebCryptoAlgorithmIdAesCbc: |
| 759 return doWriteUint32(AesCbcTag); | 766 return doWriteUint32(AesCbcTag); |
| 760 case blink::WebCryptoAlgorithmIdHmac: | 767 case blink::WebCryptoAlgorithmIdHmac: |
| 761 return doWriteUint32(HmacTag); | 768 return doWriteUint32(HmacTag); |
| 762 case blink::WebCryptoAlgorithmIdRsaSsaPkcs1v1_5: | 769 case blink::WebCryptoAlgorithmIdRsaSsaPkcs1v1_5: |
| 763 return doWriteUint32(RsaSsaPkcs1v1_5Tag); | 770 return doWriteUint32(RsaSsaPkcs1v1_5Tag); |
| 771 case blink::WebCryptoAlgorithmIdRsaEsPkcs1v1_5: |
| 772 return doWriteUint32(RsaEsPkcs1v1_5Tag); |
| 764 case blink::WebCryptoAlgorithmIdSha1: | 773 case blink::WebCryptoAlgorithmIdSha1: |
| 765 return doWriteUint32(Sha1Tag); | 774 return doWriteUint32(Sha1Tag); |
| 766 case blink::WebCryptoAlgorithmIdSha256: | 775 case blink::WebCryptoAlgorithmIdSha256: |
| 767 return doWriteUint32(Sha256Tag); | 776 return doWriteUint32(Sha256Tag); |
| 768 case blink::WebCryptoAlgorithmIdSha384: | 777 case blink::WebCryptoAlgorithmIdSha384: |
| 769 return doWriteUint32(Sha384Tag); | 778 return doWriteUint32(Sha384Tag); |
| 770 case blink::WebCryptoAlgorithmIdSha512: | 779 case blink::WebCryptoAlgorithmIdSha512: |
| 771 return doWriteUint32(Sha512Tag); | 780 return doWriteUint32(Sha512Tag); |
| 772 case blink::WebCryptoAlgorithmIdAesGcm: | 781 case blink::WebCryptoAlgorithmIdAesGcm: |
| 773 return doWriteUint32(AesGcmTag); | 782 return doWriteUint32(AesGcmTag); |
| (...skipping 1464 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2238 | 2247 |
| 2239 switch (static_cast<CryptoKeySubTag>(rawKeyType)) { | 2248 switch (static_cast<CryptoKeySubTag>(rawKeyType)) { |
| 2240 case AesKeyTag: | 2249 case AesKeyTag: |
| 2241 if (!doReadAesKey(algorithm, type)) | 2250 if (!doReadAesKey(algorithm, type)) |
| 2242 return false; | 2251 return false; |
| 2243 break; | 2252 break; |
| 2244 case HmacKeyTag: | 2253 case HmacKeyTag: |
| 2245 if (!doReadHmacKey(algorithm, type)) | 2254 if (!doReadHmacKey(algorithm, type)) |
| 2246 return false; | 2255 return false; |
| 2247 break; | 2256 break; |
| 2257 case RsaKeyTag: |
| 2258 if (!doReadRsaKey(false, algorithm, type)) |
| 2259 return false; |
| 2260 break; |
| 2248 case RsaHashedKeyTag: | 2261 case RsaHashedKeyTag: |
| 2249 if (!doReadRsaHashedKey(algorithm, type)) | 2262 if (!doReadRsaKey(true, algorithm, type)) |
| 2250 return false; | 2263 return false; |
| 2251 break; | 2264 break; |
| 2252 default: | 2265 default: |
| 2253 return false; | 2266 return false; |
| 2254 } | 2267 } |
| 2255 | 2268 |
| 2256 blink::WebCryptoKeyUsageMask usages; | 2269 blink::WebCryptoKeyUsageMask usages; |
| 2257 bool extractable; | 2270 bool extractable; |
| 2258 if (!doReadKeyUsages(usages, extractable)) | 2271 if (!doReadKeyUsages(usages, extractable)) |
| 2259 return false; | 2272 return false; |
| (...skipping 139 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2399 if (!doReadAlgorithmId(id)) | 2412 if (!doReadAlgorithmId(id)) |
| 2400 return false; | 2413 return false; |
| 2401 uint32_t lengthBytes; | 2414 uint32_t lengthBytes; |
| 2402 if (!doReadUint32(&lengthBytes)) | 2415 if (!doReadUint32(&lengthBytes)) |
| 2403 return false; | 2416 return false; |
| 2404 algorithm = blink::WebCryptoKeyAlgorithm::createAes(id, lengthBytes * 8)
; | 2417 algorithm = blink::WebCryptoKeyAlgorithm::createAes(id, lengthBytes * 8)
; |
| 2405 type = blink::WebCryptoKeyTypeSecret; | 2418 type = blink::WebCryptoKeyTypeSecret; |
| 2406 return !algorithm.isNull(); | 2419 return !algorithm.isNull(); |
| 2407 } | 2420 } |
| 2408 | 2421 |
| 2409 bool doReadRsaHashedKey(blink::WebCryptoKeyAlgorithm& algorithm, blink::WebC
ryptoKeyType& type) | 2422 bool doReadRsaKey(bool hasHash, blink::WebCryptoKeyAlgorithm& algorithm, bli
nk::WebCryptoKeyType& type) |
| 2410 { | 2423 { |
| 2411 blink::WebCryptoAlgorithmId id; | 2424 blink::WebCryptoAlgorithmId id; |
| 2412 if (!doReadAlgorithmId(id)) | 2425 if (!doReadAlgorithmId(id)) |
| 2413 return false; | 2426 return false; |
| 2414 | 2427 |
| 2415 uint32_t rawType; | 2428 uint32_t rawType; |
| 2416 if (!doReadUint32(&rawType)) | 2429 if (!doReadUint32(&rawType)) |
| 2417 return false; | 2430 return false; |
| 2418 | 2431 |
| 2419 switch (static_cast<AssymetricCryptoKeyType>(rawType)) { | 2432 switch (static_cast<AssymetricCryptoKeyType>(rawType)) { |
| (...skipping 14 matching lines...) Expand all Loading... |
| 2434 uint32_t publicExponentSize; | 2447 uint32_t publicExponentSize; |
| 2435 if (!doReadUint32(&publicExponentSize)) | 2448 if (!doReadUint32(&publicExponentSize)) |
| 2436 return false; | 2449 return false; |
| 2437 | 2450 |
| 2438 if (m_position + publicExponentSize > m_length) | 2451 if (m_position + publicExponentSize > m_length) |
| 2439 return false; | 2452 return false; |
| 2440 | 2453 |
| 2441 const uint8_t* publicExponent = m_buffer + m_position; | 2454 const uint8_t* publicExponent = m_buffer + m_position; |
| 2442 m_position += publicExponentSize; | 2455 m_position += publicExponentSize; |
| 2443 | 2456 |
| 2444 blink::WebCryptoAlgorithmId hash; | 2457 if (hasHash) { |
| 2445 if (!doReadAlgorithmId(hash)) | 2458 blink::WebCryptoAlgorithmId hash; |
| 2446 return false; | 2459 if (!doReadAlgorithmId(hash)) |
| 2447 algorithm = blink::WebCryptoKeyAlgorithm::createRsaHashed(id, modulusLen
gthBits, publicExponent, publicExponentSize, hash); | 2460 return false; |
| 2461 algorithm = blink::WebCryptoKeyAlgorithm::createRsaHashed(id, modulu
sLengthBits, publicExponent, publicExponentSize, hash); |
| 2462 } else { |
| 2463 algorithm = blink::WebCryptoKeyAlgorithm::createRsa(id, modulusLengt
hBits, publicExponent, publicExponentSize); |
| 2464 } |
| 2448 | 2465 |
| 2449 return !algorithm.isNull(); | 2466 return !algorithm.isNull(); |
| 2450 } | 2467 } |
| 2451 | 2468 |
| 2452 bool doReadAlgorithmId(blink::WebCryptoAlgorithmId& id) | 2469 bool doReadAlgorithmId(blink::WebCryptoAlgorithmId& id) |
| 2453 { | 2470 { |
| 2454 uint32_t rawId; | 2471 uint32_t rawId; |
| 2455 if (!doReadUint32(&rawId)) | 2472 if (!doReadUint32(&rawId)) |
| 2456 return false; | 2473 return false; |
| 2457 | 2474 |
| 2458 switch (static_cast<CryptoKeyAlgorithmTag>(rawId)) { | 2475 switch (static_cast<CryptoKeyAlgorithmTag>(rawId)) { |
| 2459 case AesCbcTag: | 2476 case AesCbcTag: |
| 2460 id = blink::WebCryptoAlgorithmIdAesCbc; | 2477 id = blink::WebCryptoAlgorithmIdAesCbc; |
| 2461 return true; | 2478 return true; |
| 2462 case HmacTag: | 2479 case HmacTag: |
| 2463 id = blink::WebCryptoAlgorithmIdHmac; | 2480 id = blink::WebCryptoAlgorithmIdHmac; |
| 2464 return true; | 2481 return true; |
| 2465 case RsaSsaPkcs1v1_5Tag: | 2482 case RsaSsaPkcs1v1_5Tag: |
| 2466 id = blink::WebCryptoAlgorithmIdRsaSsaPkcs1v1_5; | 2483 id = blink::WebCryptoAlgorithmIdRsaSsaPkcs1v1_5; |
| 2467 return true; | 2484 return true; |
| 2485 case RsaEsPkcs1v1_5Tag: |
| 2486 id = blink::WebCryptoAlgorithmIdRsaEsPkcs1v1_5; |
| 2487 return true; |
| 2468 case Sha1Tag: | 2488 case Sha1Tag: |
| 2469 id = blink::WebCryptoAlgorithmIdSha1; | 2489 id = blink::WebCryptoAlgorithmIdSha1; |
| 2470 return true; | 2490 return true; |
| 2471 case Sha256Tag: | 2491 case Sha256Tag: |
| 2472 id = blink::WebCryptoAlgorithmIdSha256; | 2492 id = blink::WebCryptoAlgorithmIdSha256; |
| 2473 return true; | 2493 return true; |
| 2474 case Sha384Tag: | 2494 case Sha384Tag: |
| 2475 id = blink::WebCryptoAlgorithmIdSha384; | 2495 id = blink::WebCryptoAlgorithmIdSha384; |
| 2476 return true; | 2496 return true; |
| 2477 case Sha512Tag: | 2497 case Sha512Tag: |
| (...skipping 571 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3049 // If the allocated memory was not registered before, then this class is lik
ely | 3069 // If the allocated memory was not registered before, then this class is lik
ely |
| 3050 // used in a context other then Worker's onmessage environment and the prese
nce of | 3070 // used in a context other then Worker's onmessage environment and the prese
nce of |
| 3051 // current v8 context is not guaranteed. Avoid calling v8 then. | 3071 // current v8 context is not guaranteed. Avoid calling v8 then. |
| 3052 if (m_externallyAllocatedMemory) { | 3072 if (m_externallyAllocatedMemory) { |
| 3053 ASSERT(v8::Isolate::GetCurrent()); | 3073 ASSERT(v8::Isolate::GetCurrent()); |
| 3054 v8::Isolate::GetCurrent()->AdjustAmountOfExternalAllocatedMemory(-m_exte
rnallyAllocatedMemory); | 3074 v8::Isolate::GetCurrent()->AdjustAmountOfExternalAllocatedMemory(-m_exte
rnallyAllocatedMemory); |
| 3055 } | 3075 } |
| 3056 } | 3076 } |
| 3057 | 3077 |
| 3058 } // namespace WebCore | 3078 } // namespace WebCore |
| OLD | NEW |