Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(107)

Unified Diff: LayoutTests/crypto/exportKey-deserializedKey.html

Issue 770363002: [WebCrypto] Crypto tests updated to use KeyUsage (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Created 6 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: LayoutTests/crypto/exportKey-deserializedKey.html
diff --git a/LayoutTests/crypto/exportKey-deserializedKey.html b/LayoutTests/crypto/exportKey-deserializedKey.html
new file mode 100644
index 0000000000000000000000000000000000000000..2be3b6e58ed7b56ffec53c4e828fc4355dbf2e13
--- /dev/null
+++ b/LayoutTests/crypto/exportKey-deserializedKey.html
@@ -0,0 +1,103 @@
+<!DOCTYPE html>
+<html>
+<head>
+<script src="../resources/js-test.js"></script>
+<script src="resources/common.js"></script>
+</head>
+<body>
+<script>
+ description("Test storing a Raw key in IndexedDB, and retrieving it which has empty key usage.");
+
+ jsTestIsAsync = true;
+ function setDeserializeKey(algorithm) {
+ var jwkKey = {
+ "kty": "oct",
+ "k": "jnOw99oOZFLIEPMrgJB55WL46tJSLGt7jnOw99oOZFI"
+ };
+
+ var keyDesc = {
+ format: "jwk",
+ keyData: jwkKey,
+ algorithm: {name: algorithm},
+ extractable: true,
+ usages: []
+ };
+ return internals.deserializeBuffer(internals.serializeObject(keyDesc));
eroman 2014/12/05 17:16:00 This isn't what I had in mind. This test is seria
+ }
+
+ var aesKey = setDeserializeKey("AES-CBC");
+ var hmacKey = setDeserializeKey("HMAC");
+
+ var openRequest = indexedDB.open("crypto_subtle");
+ openRequest.onupgradeneeded = function(event) {
+ var objectStore = event.target.result.createObjectStore("key-indexeddb");
+ }
+ openRequest.onerror = function(event) {
+ testFailed("Could not open database: " + event.target.error.name);
+ finishJSTest();
+ }
+ openRequest.onsuccess = function(event) {
+ db = event.target.result;
+ storeKey(aesKey, "myaeskey");
+ }
+
+ function storeKey(key, keyname) {
+ var tx = db.transaction("key-indexeddb", "readwrite");
+ var objectStore = tx.objectStore("key-indexeddb");
+ var req = objectStore.put(key, keyname);
+ req.onerror = function(event) {
+ testFailed("Could not put a key into database: " + event.target.error.name);
+ finishJSTest();
+ }
+ req.onsuccess = function(event) {
+ debug("Put key into database successfully");
+ }
+ tx.oncomplete = function() {
+ keyname == "myaeskey" ? storeKey(hmacKey, "myhmackey") : readKey();
+ }
+ }
+
+ function readKey() {
+ var objectStore = db.transaction("key-indexeddb").objectStore("key-indexeddb");
+ var aesreq = objectStore.get("myaeskey");
+ var hmacreq = objectStore.get("myhmackey");
+ var counter = 0;
+
+ aesreq.onerror = function(event) {
+ testFailed("Could not get a key from database: " + event.target.error.name);
+ finishJSTest();
+ }
+ aesreq.onsuccess = function(event) {
+ counter++;
+ debug("Read AES Key");
+ window.retrievedKey = event.target.result;
+ shouldBeEqualToString("retrievedKey.format", "jwk");
+ shouldBeEqualToString("retrievedKey.keyData.k", "jnOw99oOZFLIEPMrgJB55WL46tJSLGt7jnOw99oOZFI");
+ shouldBe("retrievedKey.extractable", "true");
+ shouldBeEqualToString("retrievedKey.algorithm.name", "AES-CBC");
+ shouldBe("retrievedKey.usages", "[]");
+ if (counter == 2)
+ finishJSTest();
+
+ }
+ hmacreq.onerror = function(event) {
+ testFailed("Could not get a key from database: " + event.target.error.name);
+ finishJSTest();
+ }
+ hmacreq.onsuccess = function(event) {
+ counter++;
+ debug("Read HMAC Key");
+ window.retrievedKey = event.target.result;
+ shouldBeEqualToString("retrievedKey.format", "jwk");
+ shouldBeEqualToString("retrievedKey.keyData.k", "jnOw99oOZFLIEPMrgJB55WL46tJSLGt7jnOw99oOZFI");
+ shouldBe("retrievedKey.extractable", "true");
+ shouldBeEqualToString("retrievedKey.algorithm.name", "HMAC");
+ shouldBe("retrievedKey.usages", "[]");
+ if (counter == 2)
+ finishJSTest();
+ }
+ }
+</script>
+</body>
+</html>
+
« no previous file with comments | « LayoutTests/crypto/clone-hmacKey-expected.txt ('k') | LayoutTests/crypto/exportKey-deserializedKey-expected.txt » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698