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 158 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
169 if (!normalizeAlgorithm(rawAlgorithm, ImportKey, algorithm, es)) | 169 if (!normalizeAlgorithm(rawAlgorithm, ImportKey, algorithm, es)) |
170 return ScriptObject(); | 170 return ScriptObject(); |
171 | 171 |
172 const unsigned char* keyDataBytes = static_cast<unsigned char*>(keyData->bas
eAddress()); | 172 const unsigned char* keyDataBytes = static_cast<unsigned char*>(keyData->bas
eAddress()); |
173 | 173 |
174 RefPtr<CryptoResult> result = CryptoResult::create(); | 174 RefPtr<CryptoResult> result = CryptoResult::create(); |
175 WebKit::Platform::current()->crypto()->importKey(format, keyDataBytes, keyDa
ta->byteLength(), algorithm, extractable, keyUsages, result->result()); | 175 WebKit::Platform::current()->crypto()->importKey(format, keyDataBytes, keyDa
ta->byteLength(), algorithm, extractable, keyUsages, result->result()); |
176 return result->promise(); | 176 return result->promise(); |
177 } | 177 } |
178 | 178 |
| 179 ScriptObject SubtleCrypto::exportKey(const String& rawFormat, Key* key, Exceptio
nState& es) |
| 180 { |
| 181 WebKit::WebCryptoKeyFormat format; |
| 182 if (!Key::parseFormat(rawFormat, format, es)) |
| 183 return ScriptObject(); |
| 184 |
| 185 if (!key) { |
| 186 es.throwTypeError("Invalid key argument"); |
| 187 return ScriptObject(); |
| 188 } |
| 189 |
| 190 if (!key->extractable()) { |
| 191 es.throwDOMException(NotSupportedError, "key is not extractable"); |
| 192 return ScriptObject(); |
| 193 } |
| 194 |
| 195 RefPtr<CryptoResult> result = CryptoResult::create(); |
| 196 WebKit::Platform::current()->crypto()->exportKey(format, key->key(), result-
>result()); |
| 197 return result->promise(); |
| 198 } |
| 199 |
179 } // namespace WebCore | 200 } // namespace WebCore |
OLD | NEW |