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 that HKDF does not support methods it should not support.");
16 kHkdfKey
= "0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b";
21 salt
: new Uint8Array(),
22 info
: new Uint8Array()
25 var extractable
= true;
26 Promise
.resolve(null).then(function(result
) {
27 // Set up the test by creating an HKDF key.
28 return crypto
.subtle
.importKey("raw", hexStringToUint8Array(kHkdfKey
), {name
: "HKDF"}, extractable
, ['deriveKey', 'deriveBits']);
29 }).then(function(result
) {
32 debug("Derive 0 bits from the HKDF key");
33 return crypto
.subtle
.deriveBits(kHkdfAlgorithm
, baseKey
, 0);
34 }).then(function(result
) {
37 shouldBe("derivedBits.byteLength", "0");
39 debug("Derive 4 bits from the HKDF key");
40 return crypto
.subtle
.deriveBits(kHkdfAlgorithm
, baseKey
, 4);
41 }).then(function(result
) {
42 derivedBits
= new DataView(result
);
44 shouldBe("derivedBits.byteLength", "1");
45 // The last 4 bits should be zeroes.
46 shouldBe("derivedBits.getUint8(0)", "0x80");
48 }).then(finishJSTest
, failAndFinishJSTest
);