4 <script src=
"../../../resources/js-test.js"></script>
5 <script src=
"../resources/common.js"></script>
8 <p id=
"description"></p>
9 <div id=
"console"></div>
12 description("Test importing an EC public and private key for ECDH.");
16 var extractable
= true;
21 "x": "nLDPaTA9r8dh1ORoe07PA55tNKuWSvgIENjVWKSo1vc",
22 "y": "LVEjOheIkgqG7gihlix576MX-3h54pfa0hRtuZX6HHg"
25 var privateKeyJSON
= {
28 "d": "pJLOj6kAhMIn4aMveXTTnp_2en6HBew0GbNftgdYK-vUYeCxUgrHbsLdTptj665x",
29 "x": "5V_ubEnY1SP1znv5wEJc5P9lBwi33lz7CVkBUjl5p_BCYC2zCFRzU2mBO1w_Xvho",
30 "y": "KPWcxdxQmJKpiNOKjiUZ3j0MT9D72wmT448YUGwXYGxeJCSSRvHOlJg6U2HFvpg-"
33 debug("Importing a public key...");
34 crypto
.subtle
.importKey("jwk", publicKeyJSON
, {name
: "ECDH", namedCurve
: "P-256"}, extractable
, []).then(function(result
) {
36 shouldBe("publicKey.toString()", "'[object CryptoKey]'");
37 shouldBe("publicKey.type", "'public'");
38 shouldBe("publicKey.usages", "[]");
39 shouldBe("publicKey.algorithm.name", "'ECDH'");
40 shouldBe("publicKey.algorithm.namedCurve", "'P-256'");
41 debug("\nImporting a private key...");
42 return crypto
.subtle
.importKey("jwk", privateKeyJSON
, {name
: "ECDH", namedCurve
: "P-384"}, extractable
, ["deriveBits"]);
43 }).then(function(result
) {
45 shouldBe("privateKey.toString()", "'[object CryptoKey]'");
46 shouldBe("privateKey.type", "'private'");
47 shouldBe("privateKey.usages", "['deriveBits']");
48 shouldBe("privateKey.algorithm.name", "'ECDH'");
49 shouldBe("privateKey.algorithm.namedCurve", "'P-384'");
50 }).then(finishJSTest
, failAndFinishJSTest
);