| 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 742 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 753 CryptoKey* cryptoKey = V8CryptoKey::toImplWithTypeCheck(raw.isolate(), v8Val
ue); | 753 CryptoKey* cryptoKey = V8CryptoKey::toImplWithTypeCheck(raw.isolate(), v8Val
ue); |
| 754 if (!cryptoKey) { | 754 if (!cryptoKey) { |
| 755 setSyntaxError(context.toString("public", "Must be a CryptoKey"), error)
; | 755 setSyntaxError(context.toString("public", "Must be a CryptoKey"), error)
; |
| 756 return false; | 756 return false; |
| 757 } | 757 } |
| 758 | 758 |
| 759 params = adoptPtr(new WebCryptoEcdhKeyDeriveParams(cryptoKey->key())); | 759 params = adoptPtr(new WebCryptoEcdhKeyDeriveParams(cryptoKey->key())); |
| 760 return true; | 760 return true; |
| 761 } | 761 } |
| 762 | 762 |
| 763 // Defined by the WebCrypto spec as: |
| 764 // |
| 765 // dictionary AesDerivedKeyParams : Algorithm { |
| 766 // [EnforceRange] required unsigned short length; |
| 767 // }; |
| 768 bool parseAesDerivedKeyParams(const Dictionary& raw, OwnPtr<WebCryptoAlgorithmPa
rams>& params, const ErrorContext& context, AlgorithmError* error) |
| 769 { |
| 770 uint16_t length; |
| 771 if (!getUint16(raw, "length", length, context, error)) |
| 772 return false; |
| 773 |
| 774 params = adoptPtr(new WebCryptoAesDerivedKeyParams(length)); |
| 775 return true; |
| 776 } |
| 777 |
| 763 bool parseAlgorithmParams(const Dictionary& raw, WebCryptoAlgorithmParamsType ty
pe, OwnPtr<WebCryptoAlgorithmParams>& params, ErrorContext& context, AlgorithmEr
ror* error) | 778 bool parseAlgorithmParams(const Dictionary& raw, WebCryptoAlgorithmParamsType ty
pe, OwnPtr<WebCryptoAlgorithmParams>& params, ErrorContext& context, AlgorithmEr
ror* error) |
| 764 { | 779 { |
| 765 switch (type) { | 780 switch (type) { |
| 766 case WebCryptoAlgorithmParamsTypeNone: | 781 case WebCryptoAlgorithmParamsTypeNone: |
| 767 return true; | 782 return true; |
| 768 case WebCryptoAlgorithmParamsTypeAesCbcParams: | 783 case WebCryptoAlgorithmParamsTypeAesCbcParams: |
| 769 context.add("AesCbcParams"); | 784 context.add("AesCbcParams"); |
| 770 return parseAesCbcParams(raw, params, context, error); | 785 return parseAesCbcParams(raw, params, context, error); |
| 771 case WebCryptoAlgorithmParamsTypeAesKeyGenParams: | 786 case WebCryptoAlgorithmParamsTypeAesKeyGenParams: |
| 772 context.add("AesKeyGenParams"); | 787 context.add("AesKeyGenParams"); |
| (...skipping 27 matching lines...) Expand all Loading... |
| 800 return parseEcdsaParams(raw, params, context, error); | 815 return parseEcdsaParams(raw, params, context, error); |
| 801 case WebCryptoAlgorithmParamsTypeEcKeyGenParams: | 816 case WebCryptoAlgorithmParamsTypeEcKeyGenParams: |
| 802 context.add("EcKeyGenParams"); | 817 context.add("EcKeyGenParams"); |
| 803 return parseEcKeyGenParams(raw, params, context, error); | 818 return parseEcKeyGenParams(raw, params, context, error); |
| 804 case WebCryptoAlgorithmParamsTypeEcKeyImportParams: | 819 case WebCryptoAlgorithmParamsTypeEcKeyImportParams: |
| 805 context.add("EcKeyImportParams"); | 820 context.add("EcKeyImportParams"); |
| 806 return parseEcKeyImportParams(raw, params, context, error); | 821 return parseEcKeyImportParams(raw, params, context, error); |
| 807 case WebCryptoAlgorithmParamsTypeEcdhKeyDeriveParams: | 822 case WebCryptoAlgorithmParamsTypeEcdhKeyDeriveParams: |
| 808 context.add("EcdhKeyDeriveParams"); | 823 context.add("EcdhKeyDeriveParams"); |
| 809 return parseEcdhKeyDeriveParams(raw, params, context, error); | 824 return parseEcdhKeyDeriveParams(raw, params, context, error); |
| 825 case WebCryptoAlgorithmParamsTypeAesDerivedKeyParams: |
| 826 context.add("AesDerivedKeyParams"); |
| 827 return parseAesDerivedKeyParams(raw, params, context, error); |
| 810 } | 828 } |
| 811 ASSERT_NOT_REACHED(); | 829 ASSERT_NOT_REACHED(); |
| 812 return false; | 830 return false; |
| 813 } | 831 } |
| 814 | 832 |
| 815 const char* operationToString(WebCryptoOperation op) | 833 const char* operationToString(WebCryptoOperation op) |
| 816 { | 834 { |
| 817 switch (op) { | 835 switch (op) { |
| 818 case WebCryptoOperationEncrypt: | 836 case WebCryptoOperationEncrypt: |
| 819 return "encrypt"; | 837 return "encrypt"; |
| (...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 897 } | 915 } |
| 898 | 916 |
| 899 } // namespace | 917 } // namespace |
| 900 | 918 |
| 901 bool normalizeAlgorithm(const AlgorithmIdentifier& raw, WebCryptoOperation op, W
ebCryptoAlgorithm& algorithm, AlgorithmError* error) | 919 bool normalizeAlgorithm(const AlgorithmIdentifier& raw, WebCryptoOperation op, W
ebCryptoAlgorithm& algorithm, AlgorithmError* error) |
| 902 { | 920 { |
| 903 return parseAlgorithmIdentifier(raw, op, algorithm, ErrorContext(), error); | 921 return parseAlgorithmIdentifier(raw, op, algorithm, ErrorContext(), error); |
| 904 } | 922 } |
| 905 | 923 |
| 906 } // namespace blink | 924 } // namespace blink |
| OLD | NEW |