<!-- Utilities for manipulating ABVs -->
<script src="util.js"></script>
<!-- A simple wrapper around IndexedDB -->
<script src="simpledb.js"></script>
<!-- Test vectors drawn from the literature -->
<script src="./test-vectors.js"></script>
<!-- General testing framework -->
<script src="./test-array.js"></script>
<script>/* <![CDATA[*/ "use strict";
// -----------------------------------------------------------------------------
TestArray.addTest( "Key wrap known answer, using AES-GCM",
function() { var that = this; var alg = {
name: "AES-GCM",
iv: tv.key_wrap_known_answer.wrapping_iv,
tagLength: 128,
}; var key, wrappingKey;
// -----------------------------------------------------------------------------
TestArray.addTest( "Key unwrap known answer, using AES-GCM",
function() { var that = this; var alg = {
name: "AES-GCM",
iv: tv.key_wrap_known_answer.wrapping_iv,
tagLength: 128,
}; var wrappingKey;
// -----------------------------------------------------------------------------
TestArray.addTest( "AES-KW known answer",
function() { var that = this;
function doWrap(keys) { var wrapKey = keys[0]; var originalKey = keys[1];
return crypto.subtle.wrapKey("raw", originalKey, wrapKey, "AES-KW");
}
// -----------------------------------------------------------------------------
TestArray.addTest( "AES-KW unwrap failure on tampered key data",
function() { var that = this; var tamperedWrappedKey = new Uint8Array(tv.aes_kw.wrapped_key);
tamperedWrappedKey[5] ^= 0xFF;
// -----------------------------------------------------------------------------
TestArray.addTest( "AES-KW unwrap AES-KW key data",
function() { var that = this; var wrappedKey = new Uint8Array(tv.aes_kw.wrapped_key);
// -----------------------------------------------------------------------------
TestArray.addTest( "JWK unwrap attempt on bogus data should error out",
function() {
// Largely cribbed from the "JWK wrap/unwrap round-trip, with AES-GCM" test var that = this; var wrapAlg = { name: "AES-GCM", iv: tv.aes_gcm_enc.iv }; var wrapKey;
function doBogusWrap() { var abv = new TextEncoder().encode("I am so not JSON");
return crypto.subtle.encrypt(wrapAlg, wrapKey, abv);
}
function doUnwrap(wrappedKey) {
return crypto.subtle.unwrapKey("jwk", wrappedKey, wrapKey, wrapAlg,
{name: "HMAC", hash: "SHA-384"},
true, ["sign", "verify"]);
}
¤ Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.0.25Bemerkung:
(vorverarbeitet am 2026-09-28)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.