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 77 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
88 | 88 |
89 blink::WebCryptoKeyUsageMask keyUsageStringToMask(const String& usageString) | 89 blink::WebCryptoKeyUsageMask keyUsageStringToMask(const String& usageString) |
90 { | 90 { |
91 for (size_t i = 0; i < WTF_ARRAY_LENGTH(keyUsageMappings); ++i) { | 91 for (size_t i = 0; i < WTF_ARRAY_LENGTH(keyUsageMappings); ++i) { |
92 if (keyUsageMappings[i].name == usageString) | 92 if (keyUsageMappings[i].name == usageString) |
93 return keyUsageMappings[i].value; | 93 return keyUsageMappings[i].value; |
94 } | 94 } |
95 return 0; | 95 return 0; |
96 } | 96 } |
97 | 97 |
98 blink::WebCryptoKeyUsageMask toKeyUsage(AlgorithmOperation operation) | 98 blink::WebCryptoKeyUsageMask toKeyUsage(blink::WebCryptoOperation operation) |
99 { | 99 { |
100 switch (operation) { | 100 switch (operation) { |
101 case Encrypt: | 101 case blink::WebCryptoOperationEncrypt: |
102 return blink::WebCryptoKeyUsageEncrypt; | 102 return blink::WebCryptoKeyUsageEncrypt; |
103 case Decrypt: | 103 case blink::WebCryptoOperationDecrypt: |
104 return blink::WebCryptoKeyUsageDecrypt; | 104 return blink::WebCryptoKeyUsageDecrypt; |
105 case Sign: | 105 case blink::WebCryptoOperationSign: |
106 return blink::WebCryptoKeyUsageSign; | 106 return blink::WebCryptoKeyUsageSign; |
107 case Verify: | 107 case blink::WebCryptoOperationVerify: |
108 return blink::WebCryptoKeyUsageVerify; | 108 return blink::WebCryptoKeyUsageVerify; |
109 case DeriveKey: | 109 case blink::WebCryptoOperationDeriveKey: |
110 return blink::WebCryptoKeyUsageDeriveKey; | 110 return blink::WebCryptoKeyUsageDeriveKey; |
111 case DeriveBits: | 111 case blink::WebCryptoOperationDeriveBits: |
112 return blink::WebCryptoKeyUsageDeriveBits; | 112 return blink::WebCryptoKeyUsageDeriveBits; |
113 case WrapKey: | 113 case blink::WebCryptoOperationWrapKey: |
114 return blink::WebCryptoKeyUsageWrapKey; | 114 return blink::WebCryptoKeyUsageWrapKey; |
115 case UnwrapKey: | 115 case blink::WebCryptoOperationUnwrapKey: |
116 return blink::WebCryptoKeyUsageUnwrapKey; | 116 return blink::WebCryptoKeyUsageUnwrapKey; |
117 case Digest: | 117 case blink::WebCryptoOperationDigest: |
118 case GenerateKey: | 118 case blink::WebCryptoOperationGenerateKey: |
119 case ImportKey: | 119 case blink::WebCryptoOperationImportKey: |
120 break; | 120 break; |
121 } | 121 } |
122 | 122 |
123 ASSERT_NOT_REACHED(); | 123 ASSERT_NOT_REACHED(); |
124 return 0; | 124 return 0; |
125 } | 125 } |
126 | 126 |
127 } // namespace | 127 } // namespace |
128 | 128 |
129 Key::~Key() | 129 Key::~Key() |
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
161 { | 161 { |
162 Vector<String> result; | 162 Vector<String> result; |
163 for (size_t i = 0; i < WTF_ARRAY_LENGTH(keyUsageMappings); ++i) { | 163 for (size_t i = 0; i < WTF_ARRAY_LENGTH(keyUsageMappings); ++i) { |
164 blink::WebCryptoKeyUsage usage = keyUsageMappings[i].value; | 164 blink::WebCryptoKeyUsage usage = keyUsageMappings[i].value; |
165 if (m_key.usages() & usage) | 165 if (m_key.usages() & usage) |
166 result.append(keyUsageToString(usage)); | 166 result.append(keyUsageToString(usage)); |
167 } | 167 } |
168 return result; | 168 return result; |
169 } | 169 } |
170 | 170 |
171 bool Key::canBeUsedForAlgorithm(const blink::WebCryptoAlgorithm& algorithm, Algo
rithmOperation op, CryptoResult* result) const | 171 bool Key::canBeUsedForAlgorithm(const blink::WebCryptoAlgorithm& algorithm, blin
k::WebCryptoOperation op, CryptoResult* result) const |
172 { | 172 { |
173 if (!(m_key.usages() & toKeyUsage(op))) { | 173 if (!(m_key.usages() & toKeyUsage(op))) { |
174 result->completeWithError(blink::WebCryptoErrorTypeInvalidAccess, "key.u
sages does not permit this operation"); | 174 result->completeWithError(blink::WebCryptoErrorTypeInvalidAccess, "key.u
sages does not permit this operation"); |
175 return false; | 175 return false; |
176 } | 176 } |
177 | 177 |
178 if (m_key.algorithm().id() != algorithm.id()) { | 178 if (m_key.algorithm().id() != algorithm.id()) { |
179 result->completeWithError(blink::WebCryptoErrorTypeInvalidAccess, "key.a
lgorithm does not match that of operation"); | 179 result->completeWithError(blink::WebCryptoErrorTypeInvalidAccess, "key.a
lgorithm does not match that of operation"); |
180 return false; | 180 return false; |
181 } | 181 } |
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
220 } | 220 } |
221 return true; | 221 return true; |
222 } | 222 } |
223 | 223 |
224 void Key::trace(Visitor* visitor) | 224 void Key::trace(Visitor* visitor) |
225 { | 225 { |
226 visitor->trace(m_algorithm); | 226 visitor->trace(m_algorithm); |
227 } | 227 } |
228 | 228 |
229 } // namespace WebCore | 229 } // namespace WebCore |
OLD | NEW |