ref: 0a90d87daea7bf0a97dfc7d65cc1ef0ae9806c30
parent: 0843b337e2c2f96bde753090304e1a918b03d73f
parent: cef2d4ebd48ab554330e49f8961547e05df47127
author: S. Gilles <sgilles@math.umd.edu>
date: Thu Jun 28 08:28:33 EDT 2018
Merge remote-tracking branch 'ori/master' into sin-cos-work
--- a/6/simp.c
+++ b/6/simp.c
@@ -790,6 +790,7 @@
u = addr(s, u, exprtype(lhs));
v = disp(lhs->loc, size(lhs));
r = mkexpr(lhs->loc, Oblit, t, u, v, NULL);
+ r->expr.type = exprtype(lhs);
} else {
r = set(t, u);
}
@@ -960,7 +961,7 @@
capture(Simp *s, Node *n, Node *dst)
{
Node *fn, *t, *f, *e, *val, *dcl, *fp, *envsz;
- size_t nenv, nenvt, off, i;
+ size_t nenv, nenvt, off, sz, i;
Type **envt;
Node **env;
@@ -972,12 +973,15 @@
forcelocal(s, dcl);
}
fp = addr(s, dst, exprtype(dst));
+ assignat(s, fp, Ptrsz, f);
env = getclosure(fn->func.scope, &nenv);
if (env) {
- /* we need these in a deterministic order so that we can
- put them in the right place both when we use them and
- when we capture them. */
+ /*
+ * we need these in a deterministic order so that we can
+ * put them in the right place both when we use them and
+ * when we capture them.
+ */
qsort(env, nenv, sizeof(Node*), envcmp);
/* make the tuple that will hold the environment */
@@ -985,12 +989,19 @@
nenvt = 0;
/* reserve space for size */
lappend(&envt, &nenvt, tyintptr);
- for (i = 0; i < nenv; i++)
+ sz = Ptrsz;
+ for (i = 0; i < nenv; i++) {
lappend(&envt, &nenvt, decltype(env[i]));
+ sz += size(env[i]);
+ }
t = gentemp(n->loc, mktytuple(n->loc, envt, nenvt), &dcl);
forcelocal(s, dcl);
e = addr(s, t, exprtype(t));
+ envsz = mkintlit(n->loc, sz);
+ envsz->expr.type = tyintptr;
+ assignat(s, e, 0, envsz);
+ assignat(s, fp, 0, e);
off = Ptrsz; /* we start with the size of the env */
for (i = 0; i < nenv; i++) {
@@ -1002,10 +1013,6 @@
off += size(env[i]);
}
free(env);
- envsz = mkintlit(n->loc, off);
- envsz->expr.type = tyintptr;
- assignat(s, e, 0, envsz);
- assignat(s, fp, 0, e);
} else {
/*
* We need to zero out the environment, so that
@@ -1016,7 +1023,6 @@
e->expr.type = tyintptr;
assignat(s, fp, 0, e);
}
- assignat(s, fp, Ptrsz, f);
return dst;
}
@@ -1179,9 +1185,9 @@
r = simpcast(s, args[0], exprtype(n));
break;
- /* ++expr(x)
- * => args[0] = args[0] + 1
- * expr(x) */
+ /* ++expr(x)
+ * => args[0] = args[0] + 1
+ * expr(x) */
case Olit:
switch (args[0]->lit.littype) {
case Lvoid:
--- a/Makefile
+++ b/Makefile
@@ -23,6 +23,8 @@
.PHONY: bootstrap
bootstrap: subdirs
./mk/bootstrap/bootstrap+`uname -s`-`uname -m`.sh
+ MBLD=mbld/mbld ./mbldwrap.sh
+ obj/mbld/mbld -o '' clean
.PHONY: genbootstrap
genbootstrap: buildmyr
--- /dev/null
+++ b/bld.tags
@@ -1,0 +1,4 @@
+futex: freebsd
+futex: linux
+futex: openbsd:6.2
+futex: osx
--- a/default.nix
+++ /dev/null
@@ -1,25 +1,0 @@
-{ pkgs ? (import <nixpkgs> {})
-, stdenv ? pkgs.stdenv
-, bison ? pkgs.bison
-, binutils ? pkgs.binutils
-, fetchurl ? pkgs.fetchurl
-}:
-
-stdenv.mkDerivation rec {
- name = "myrddin";
-
- src = ./.;
-
- buildInputs = [ bison binutils ];
-
- preBuild = ''
- make bootstrap
- '';
-
- postPatch = ''
- substituteInPlace "mbld/opts.myr" --replace '"ld"' '"${binutils}/bin/ld"'
- substituteInPlace "configure" --replace '"ld"' '"${binutils}/bin/ld"'
- substituteInPlace "mbld/opts.myr" --replace '"as"' '"${binutils}/bin/as"'
- substituteInPlace "configure" --replace '"as"' '"${binutils}/bin/as"'
- '';
-}
--- a/genbootstrap.sh
+++ b/genbootstrap.sh
@@ -24,7 +24,7 @@
*Darwin*) echo -Tposixy -Tosx;;
*FreeBSD*) echo -Tposixy -Tfreebsd;;
*NetBSD*) echo -Tposixy -Tnetbsd;;
- *OpenBSD*) echo -Tposixy -Topenbsd:6.2;;
+ *OpenBSD*) echo -Tposixy -Topenbsd:6.3;;
*Plan9*) echo -Tplan9;;
esac
case `uname -m` in
--- a/lib/bld.sub
+++ b/lib/bld.sub
@@ -4,6 +4,7 @@
date
escfmt
fileutil
+ flate
http
inifile
iter
--- a/lib/crypto/aesgcm.myr
+++ b/lib/crypto/aesgcm.myr
@@ -81,23 +81,24 @@
}
const aesgcmdecrypt = {c, buf, aad, tag
- var tmp : byte[16]
+ var ctag : byte[16], tmp : byte[16]
var L, Y
- ghash(c, aad, Y)
- ghash(c, buf, Y)
+ L = [0,0,0,0]
+ Y = [0,0,0,0]
+ ghash(c, aad, Y[:])
+ ghash(c, buf, Y[:])
L[0] = buf.len << 3
L[1] = buf.len >> 29
L[2] = aad.len << 3
L[3] = aad.len >> 29
- ghash1(c, L, Y)
- store128(Y, tmp[:])
- aesctr(c, tmp[:])
- if bufeq(tag, tmp[:])
- -> false
+ ghash1(c, L[:], Y[:])
+ store128(Y[:], ctag[:])
+ for var i = 0; i < 16; i++
+ ctag[i] ^= c.j0[i]
;;
aesctr(c, buf)
- -> true
+ -> bufeq(tag, ctag[:])
}
const ghash = {c, buf, Y
--- a/lib/crypto/test/aesgcm.myr
+++ b/lib/crypto/test/aesgcm.myr
@@ -20,24 +20,34 @@
aad : byte[:]
ct : byte[:]
tag : byte[:]
+ fail : bool
;;
const main = {
- for g : iter.byref(testgroups)
+ for g : iter.byref(enctests)
testr.run([
[.name=g.name, .fn={ctx
for c : g.cases
- test(ctx, g, c)
+ testenc(ctx, g, c)
;;
}]
][:])
;;
+ for g : iter.byref(dectests)
+ testr.run([
+ [.name=g.name, .fn={ctx
+ for c : g.cases
+ testdec(ctx, g, c)
+ ;;
+ }]
+ ][:])
+ ;;
}
-const test = {tc, g, c
+const testenc = {tc, g, c
var tag : byte[16]
var ctx, iv, key
- var pt, aad//, ct
+ var pt, aad
var ect, etag /* expected */
key = unhex(c.key)
@@ -46,8 +56,6 @@
pt = unhex(c.pt)
ect = unhex(c.ct)
etag = unhex(c.tag)
- /* a tad hacky, but we need to set the count somehow. */
- std.putle32(ctx.ctr[12:16], c.count + 1)
crypto.aesgcminit(&ctx, key, iv)
crypto.aesgcmencrypt(&ctx, pt, aad, tag[:])
@@ -63,6 +71,34 @@
std.slfree(ect)
}
+const testdec = {tc, g, c
+ var ctx, iv, key
+ var ct, aad
+ var r, ept, etag /* expected */
+
+ key = unhex(c.key)
+ aad = unhex(c.aad)
+ iv = unhex(c.iv)
+ ct = unhex(c.ct)
+ ept = unhex(c.pt)
+ etag = unhex(c.tag)
+
+ crypto.aesgcminit(&ctx, key, iv)
+ r = crypto.aesgcmdecrypt(&ctx, ct, aad, etag)
+ crypto.aesgcmfin(&ctx)
+
+ if !c.fail
+ testr.eq(tc, ct, ept)
+ ;;
+ testr.eq(tc, r, !c.fail)
+
+ std.slfree(key)
+ std.slfree(aad)
+ std.slfree(iv)
+ std.slfree(ct)
+ std.slfree(ept)
+}
+
const unhex = {s
var bb, o
@@ -76,11 +112,10 @@
-> bb
}
-
/* 10,000 lines of test data. No code of interest lives below here */
-const testgroups : testgroup[:] = [
+const enctests : testgroup[:] = [
[
- .name="aesgcm-iv96-pt0-aad0-tag128-key128",
+ .name="aesgcm-enc-iv96-pt0-aad0-tag128-key128",
.keylen=128,
.ivlen=96,
.ptlen=0,
@@ -225,7 +260,7 @@
][:]
],
[
- .name="aesgcm-iv96-pt0-aad128-tag128-key128",
+ .name="aesgcm-enc-iv96-pt0-aad128-tag128-key128",
.keylen=128,
.ivlen=96,
.ptlen=0,
@@ -370,7 +405,7 @@
][:]
],
[
- .name="aesgcm-iv96-pt0-aad160-tag128-key128",
+ .name="aesgcm-enc-iv96-pt0-aad160-tag128-key128",
.keylen=128,
.ivlen=96,
.ptlen=0,
@@ -515,7 +550,7 @@
][:]
],
[
- .name="aesgcm-iv96-pt0-aad384-tag128-key128",
+ .name="aesgcm-enc-iv96-pt0-aad384-tag128-key128",
.keylen=128,
.ivlen=96,
.ptlen=0,
@@ -660,7 +695,7 @@
][:]
],
[
- .name="aesgcm-iv96-pt0-aad720-tag128-key128",
+ .name="aesgcm-enc-iv96-pt0-aad720-tag128-key128",
.keylen=128,
.ivlen=96,
.ptlen=0,
@@ -805,7 +840,7 @@
][:]
],
[
- .name="aesgcm-iv96-pt128-aad0-tag128-key128",
+ .name="aesgcm-enc-iv96-pt128-aad0-tag128-key128",
.keylen=128,
.ivlen=96,
.ptlen=128,
@@ -950,7 +985,7 @@
][:]
],
[
- .name="aesgcm-iv96-pt128-aad128-tag128-key128",
+ .name="aesgcm-enc-iv96-pt128-aad128-tag128-key128",
.keylen=128,
.ivlen=96,
.ptlen=128,
@@ -1095,7 +1130,7 @@
][:]
],
[
- .name="aesgcm-iv96-pt128-aad160-tag128-key128",
+ .name="aesgcm-enc-iv96-pt128-aad160-tag128-key128",
.keylen=128,
.ivlen=96,
.ptlen=128,
@@ -1240,7 +1275,7 @@
][:]
],
[
- .name="aesgcm-iv96-pt128-aad384-tag128-key128",
+ .name="aesgcm-enc-iv96-pt128-aad384-tag128-key128",
.keylen=128,
.ivlen=96,
.ptlen=128,
@@ -1385,7 +1420,7 @@
][:]
],
[
- .name="aesgcm-iv96-pt128-aad720-tag128-key128",
+ .name="aesgcm-enc-iv96-pt128-aad720-tag128-key128",
.keylen=128,
.ivlen=96,
.ptlen=128,
@@ -1530,7 +1565,7 @@
][:]
],
[
- .name="aesgcm-iv96-pt104-aad0-tag128-key128",
+ .name="aesgcm-enc-iv96-pt104-aad0-tag128-key128",
.keylen=128,
.ivlen=96,
.ptlen=104,
@@ -1675,7 +1710,7 @@
][:]
],
[
- .name="aesgcm-iv96-pt104-aad128-tag128-key128",
+ .name="aesgcm-enc-iv96-pt104-aad128-tag128-key128",
.keylen=128,
.ivlen=96,
.ptlen=104,
@@ -1820,7 +1855,7 @@
][:]
],
[
- .name="aesgcm-iv96-pt104-aad160-tag128-key128",
+ .name="aesgcm-enc-iv96-pt104-aad160-tag128-key128",
.keylen=128,
.ivlen=96,
.ptlen=104,
@@ -1965,7 +2000,7 @@
][:]
],
[
- .name="aesgcm-iv96-pt104-aad384-tag128-key128",
+ .name="aesgcm-enc-iv96-pt104-aad384-tag128-key128",
.keylen=128,
.ivlen=96,
.ptlen=104,
@@ -2110,7 +2145,7 @@
][:]
],
[
- .name="aesgcm-iv96-pt104-aad720-tag128-key128",
+ .name="aesgcm-enc-iv96-pt104-aad720-tag128-key128",
.keylen=128,
.ivlen=96,
.ptlen=104,
@@ -2255,7 +2290,7 @@
][:]
],
[
- .name="aesgcm-iv96-pt256-aad0-tag128-key128",
+ .name="aesgcm-enc-iv96-pt256-aad0-tag128-key128",
.keylen=128,
.ivlen=96,
.ptlen=256,
@@ -2400,7 +2435,7 @@
][:]
],
[
- .name="aesgcm-iv96-pt256-aad128-tag128-key128",
+ .name="aesgcm-enc-iv96-pt256-aad128-tag128-key128",
.keylen=128,
.ivlen=96,
.ptlen=256,
@@ -2545,7 +2580,7 @@
][:]
],
[
- .name="aesgcm-iv96-pt256-aad160-tag128-key128",
+ .name="aesgcm-enc-iv96-pt256-aad160-tag128-key128",
.keylen=128,
.ivlen=96,
.ptlen=256,
@@ -2690,7 +2725,7 @@
][:]
],
[
- .name="aesgcm-iv96-pt256-aad384-tag128-key128",
+ .name="aesgcm-enc-iv96-pt256-aad384-tag128-key128",
.keylen=128,
.ivlen=96,
.ptlen=256,
@@ -2835,7 +2870,7 @@
][:]
],
[
- .name="aesgcm-iv96-pt256-aad720-tag128-key128",
+ .name="aesgcm-enc-iv96-pt256-aad720-tag128-key128",
.keylen=128,
.ivlen=96,
.ptlen=256,
@@ -2980,7 +3015,7 @@
][:]
],
[
- .name="aesgcm-iv96-pt408-aad0-tag128-key128",
+ .name="aesgcm-enc-iv96-pt408-aad0-tag128-key128",
.keylen=128,
.ivlen=96,
.ptlen=408,
@@ -3125,7 +3160,7 @@
][:]
],
[
- .name="aesgcm-iv96-pt408-aad128-tag128-key128",
+ .name="aesgcm-enc-iv96-pt408-aad128-tag128-key128",
.keylen=128,
.ivlen=96,
.ptlen=408,
@@ -3270,7 +3305,7 @@
][:]
],
[
- .name="aesgcm-iv96-pt408-aad160-tag128-key128",
+ .name="aesgcm-enc-iv96-pt408-aad160-tag128-key128",
.keylen=128,
.ivlen=96,
.ptlen=408,
@@ -3415,7 +3450,7 @@
][:]
],
[
- .name="aesgcm-iv96-pt408-aad384-tag128-key128",
+ .name="aesgcm-enc-iv96-pt408-aad384-tag128-key128",
.keylen=128,
.ivlen=96,
.ptlen=408,
@@ -3560,7 +3595,7 @@
][:]
],
[
- .name="aesgcm-iv96-pt408-aad720-tag128-key128",
+ .name="aesgcm-enc-iv96-pt408-aad720-tag128-key128",
.keylen=128,
.ivlen=96,
.ptlen=408,
@@ -3705,7 +3740,7 @@
][:]
],
[
- .name="aesgcm-iv8-pt0-aad0-tag128-key128",
+ .name="aesgcm-enc-iv8-pt0-aad0-tag128-key128",
.keylen=128,
.ivlen=8,
.ptlen=0,
@@ -3850,7 +3885,7 @@
][:]
],
[
- .name="aesgcm-iv8-pt0-aad128-tag128-key128",
+ .name="aesgcm-enc-iv8-pt0-aad128-tag128-key128",
.keylen=128,
.ivlen=8,
.ptlen=0,
@@ -3995,7 +4030,7 @@
][:]
],
[
- .name="aesgcm-iv8-pt0-aad160-tag128-key128",
+ .name="aesgcm-enc-iv8-pt0-aad160-tag128-key128",
.keylen=128,
.ivlen=8,
.ptlen=0,
@@ -4140,7 +4175,7 @@
][:]
],
[
- .name="aesgcm-iv8-pt0-aad384-tag128-key128",
+ .name="aesgcm-enc-iv8-pt0-aad384-tag128-key128",
.keylen=128,
.ivlen=8,
.ptlen=0,
@@ -4285,7 +4320,7 @@
][:]
],
[
- .name="aesgcm-iv8-pt0-aad720-tag128-key128",
+ .name="aesgcm-enc-iv8-pt0-aad720-tag128-key128",
.keylen=128,
.ivlen=8,
.ptlen=0,
@@ -4430,7 +4465,7 @@
][:]
],
[
- .name="aesgcm-iv8-pt128-aad0-tag128-key128",
+ .name="aesgcm-enc-iv8-pt128-aad0-tag128-key128",
.keylen=128,
.ivlen=8,
.ptlen=128,
@@ -4575,7 +4610,7 @@
][:]
],
[
- .name="aesgcm-iv8-pt128-aad128-tag128-key128",
+ .name="aesgcm-enc-iv8-pt128-aad128-tag128-key128",
.keylen=128,
.ivlen=8,
.ptlen=128,
@@ -4720,7 +4755,7 @@
][:]
],
[
- .name="aesgcm-iv8-pt128-aad160-tag128-key128",
+ .name="aesgcm-enc-iv8-pt128-aad160-tag128-key128",
.keylen=128,
.ivlen=8,
.ptlen=128,
@@ -4865,7 +4900,7 @@
][:]
],
[
- .name="aesgcm-iv8-pt128-aad384-tag128-key128",
+ .name="aesgcm-enc-iv8-pt128-aad384-tag128-key128",
.keylen=128,
.ivlen=8,
.ptlen=128,
@@ -5010,7 +5045,7 @@
][:]
],
[
- .name="aesgcm-iv8-pt128-aad720-tag128-key128",
+ .name="aesgcm-enc-iv8-pt128-aad720-tag128-key128",
.keylen=128,
.ivlen=8,
.ptlen=128,
@@ -5155,7 +5190,7 @@
][:]
],
[
- .name="aesgcm-iv8-pt104-aad0-tag128-key128",
+ .name="aesgcm-enc-iv8-pt104-aad0-tag128-key128",
.keylen=128,
.ivlen=8,
.ptlen=104,
@@ -5300,7 +5335,7 @@
][:]
],
[
- .name="aesgcm-iv8-pt104-aad128-tag128-key128",
+ .name="aesgcm-enc-iv8-pt104-aad128-tag128-key128",
.keylen=128,
.ivlen=8,
.ptlen=104,
@@ -5445,7 +5480,7 @@
][:]
],
[
- .name="aesgcm-iv8-pt104-aad160-tag128-key128",
+ .name="aesgcm-enc-iv8-pt104-aad160-tag128-key128",
.keylen=128,
.ivlen=8,
.ptlen=104,
@@ -5590,7 +5625,7 @@
][:]
],
[
- .name="aesgcm-iv8-pt104-aad384-tag128-key128",
+ .name="aesgcm-enc-iv8-pt104-aad384-tag128-key128",
.keylen=128,
.ivlen=8,
.ptlen=104,
@@ -5735,7 +5770,7 @@
][:]
],
[
- .name="aesgcm-iv8-pt104-aad720-tag128-key128",
+ .name="aesgcm-enc-iv8-pt104-aad720-tag128-key128",
.keylen=128,
.ivlen=8,
.ptlen=104,
@@ -5880,7 +5915,7 @@
][:]
],
[
- .name="aesgcm-iv8-pt256-aad0-tag128-key128",
+ .name="aesgcm-enc-iv8-pt256-aad0-tag128-key128",
.keylen=128,
.ivlen=8,
.ptlen=256,
@@ -6025,7 +6060,7 @@
][:]
],
[
- .name="aesgcm-iv8-pt256-aad128-tag128-key128",
+ .name="aesgcm-enc-iv8-pt256-aad128-tag128-key128",
.keylen=128,
.ivlen=8,
.ptlen=256,
@@ -6170,7 +6205,7 @@
][:]
],
[
- .name="aesgcm-iv8-pt256-aad160-tag128-key128",
+ .name="aesgcm-enc-iv8-pt256-aad160-tag128-key128",
.keylen=128,
.ivlen=8,
.ptlen=256,
@@ -6315,7 +6350,7 @@
][:]
],
[
- .name="aesgcm-iv8-pt256-aad384-tag128-key128",
+ .name="aesgcm-enc-iv8-pt256-aad384-tag128-key128",
.keylen=128,
.ivlen=8,
.ptlen=256,
@@ -6460,7 +6495,7 @@
][:]
],
[
- .name="aesgcm-iv8-pt256-aad720-tag128-key128",
+ .name="aesgcm-enc-iv8-pt256-aad720-tag128-key128",
.keylen=128,
.ivlen=8,
.ptlen=256,
@@ -6605,7 +6640,7 @@
][:]
],
[
- .name="aesgcm-iv8-pt408-aad0-tag128-key128",
+ .name="aesgcm-enc-iv8-pt408-aad0-tag128-key128",
.keylen=128,
.ivlen=8,
.ptlen=408,
@@ -6750,7 +6785,7 @@
][:]
],
[
- .name="aesgcm-iv8-pt408-aad128-tag128-key128",
+ .name="aesgcm-enc-iv8-pt408-aad128-tag128-key128",
.keylen=128,
.ivlen=8,
.ptlen=408,
@@ -6895,7 +6930,7 @@
][:]
],
[
- .name="aesgcm-iv8-pt408-aad160-tag128-key128",
+ .name="aesgcm-enc-iv8-pt408-aad160-tag128-key128",
.keylen=128,
.ivlen=8,
.ptlen=408,
@@ -7040,7 +7075,7 @@
][:]
],
[
- .name="aesgcm-iv8-pt408-aad384-tag128-key128",
+ .name="aesgcm-enc-iv8-pt408-aad384-tag128-key128",
.keylen=128,
.ivlen=8,
.ptlen=408,
@@ -7185,7 +7220,7 @@
][:]
],
[
- .name="aesgcm-iv8-pt408-aad720-tag128-key128",
+ .name="aesgcm-enc-iv8-pt408-aad720-tag128-key128",
.keylen=128,
.ivlen=8,
.ptlen=408,
@@ -7330,7 +7365,7 @@
][:]
],
[
- .name="aesgcm-iv1024-pt0-aad0-tag128-key128",
+ .name="aesgcm-enc-iv1024-pt0-aad0-tag128-key128",
.keylen=128,
.ivlen=1024,
.ptlen=0,
@@ -7475,7 +7510,7 @@
][:]
],
[
- .name="aesgcm-iv1024-pt0-aad128-tag128-key128",
+ .name="aesgcm-enc-iv1024-pt0-aad128-tag128-key128",
.keylen=128,
.ivlen=1024,
.ptlen=0,
@@ -7620,7 +7655,7 @@
][:]
],
[
- .name="aesgcm-iv1024-pt0-aad160-tag128-key128",
+ .name="aesgcm-enc-iv1024-pt0-aad160-tag128-key128",
.keylen=128,
.ivlen=1024,
.ptlen=0,
@@ -7765,7 +7800,7 @@
][:]
],
[
- .name="aesgcm-iv1024-pt0-aad384-tag128-key128",
+ .name="aesgcm-enc-iv1024-pt0-aad384-tag128-key128",
.keylen=128,
.ivlen=1024,
.ptlen=0,
@@ -7910,7 +7945,7 @@
][:]
],
[
- .name="aesgcm-iv1024-pt0-aad720-tag128-key128",
+ .name="aesgcm-enc-iv1024-pt0-aad720-tag128-key128",
.keylen=128,
.ivlen=1024,
.ptlen=0,
@@ -8055,7 +8090,7 @@
][:]
],
[
- .name="aesgcm-iv1024-pt128-aad0-tag128-key128",
+ .name="aesgcm-enc-iv1024-pt128-aad0-tag128-key128",
.keylen=128,
.ivlen=1024,
.ptlen=128,
@@ -8200,7 +8235,7 @@
][:]
],
[
- .name="aesgcm-iv1024-pt128-aad128-tag128-key128",
+ .name="aesgcm-enc-iv1024-pt128-aad128-tag128-key128",
.keylen=128,
.ivlen=1024,
.ptlen=128,
@@ -8345,7 +8380,7 @@
][:]
],
[
- .name="aesgcm-iv1024-pt128-aad160-tag128-key128",
+ .name="aesgcm-enc-iv1024-pt128-aad160-tag128-key128",
.keylen=128,
.ivlen=1024,
.ptlen=128,
@@ -8490,7 +8525,7 @@
][:]
],
[
- .name="aesgcm-iv1024-pt128-aad384-tag128-key128",
+ .name="aesgcm-enc-iv1024-pt128-aad384-tag128-key128",
.keylen=128,
.ivlen=1024,
.ptlen=128,
@@ -8635,7 +8670,7 @@
][:]
],
[
- .name="aesgcm-iv1024-pt128-aad720-tag128-key128",
+ .name="aesgcm-enc-iv1024-pt128-aad720-tag128-key128",
.keylen=128,
.ivlen=1024,
.ptlen=128,
@@ -8780,7 +8815,7 @@
][:]
],
[
- .name="aesgcm-iv1024-pt104-aad0-tag128-key128",
+ .name="aesgcm-enc-iv1024-pt104-aad0-tag128-key128",
.keylen=128,
.ivlen=1024,
.ptlen=104,
@@ -8925,7 +8960,7 @@
][:]
],
[
- .name="aesgcm-iv1024-pt104-aad128-tag128-key128",
+ .name="aesgcm-enc-iv1024-pt104-aad128-tag128-key128",
.keylen=128,
.ivlen=1024,
.ptlen=104,
@@ -9070,7 +9105,7 @@
][:]
],
[
- .name="aesgcm-iv1024-pt104-aad160-tag128-key128",
+ .name="aesgcm-enc-iv1024-pt104-aad160-tag128-key128",
.keylen=128,
.ivlen=1024,
.ptlen=104,
@@ -9215,7 +9250,7 @@
][:]
],
[
- .name="aesgcm-iv1024-pt104-aad384-tag128-key128",
+ .name="aesgcm-enc-iv1024-pt104-aad384-tag128-key128",
.keylen=128,
.ivlen=1024,
.ptlen=104,
@@ -9360,7 +9395,7 @@
][:]
],
[
- .name="aesgcm-iv1024-pt104-aad720-tag128-key128",
+ .name="aesgcm-enc-iv1024-pt104-aad720-tag128-key128",
.keylen=128,
.ivlen=1024,
.ptlen=104,
@@ -9505,7 +9540,7 @@
][:]
],
[
- .name="aesgcm-iv1024-pt256-aad0-tag128-key128",
+ .name="aesgcm-enc-iv1024-pt256-aad0-tag128-key128",
.keylen=128,
.ivlen=1024,
.ptlen=256,
@@ -9650,7 +9685,7 @@
][:]
],
[
- .name="aesgcm-iv1024-pt256-aad128-tag128-key128",
+ .name="aesgcm-enc-iv1024-pt256-aad128-tag128-key128",
.keylen=128,
.ivlen=1024,
.ptlen=256,
@@ -9795,7 +9830,7 @@
][:]
],
[
- .name="aesgcm-iv1024-pt256-aad160-tag128-key128",
+ .name="aesgcm-enc-iv1024-pt256-aad160-tag128-key128",
.keylen=128,
.ivlen=1024,
.ptlen=256,
@@ -9940,7 +9975,7 @@
][:]
],
[
- .name="aesgcm-iv1024-pt256-aad384-tag128-key128",
+ .name="aesgcm-enc-iv1024-pt256-aad384-tag128-key128",
.keylen=128,
.ivlen=1024,
.ptlen=256,
@@ -10085,7 +10120,7 @@
][:]
],
[
- .name="aesgcm-iv1024-pt256-aad720-tag128-key128",
+ .name="aesgcm-enc-iv1024-pt256-aad720-tag128-key128",
.keylen=128,
.ivlen=1024,
.ptlen=256,
@@ -10230,7 +10265,7 @@
][:]
],
[
- .name="aesgcm-iv1024-pt408-aad0-tag128-key128",
+ .name="aesgcm-enc-iv1024-pt408-aad0-tag128-key128",
.keylen=128,
.ivlen=1024,
.ptlen=408,
@@ -10375,7 +10410,7 @@
][:]
],
[
- .name="aesgcm-iv1024-pt408-aad128-tag128-key128",
+ .name="aesgcm-enc-iv1024-pt408-aad128-tag128-key128",
.keylen=128,
.ivlen=1024,
.ptlen=408,
@@ -10520,7 +10555,7 @@
][:]
],
[
- .name="aesgcm-iv1024-pt408-aad160-tag128-key128",
+ .name="aesgcm-enc-iv1024-pt408-aad160-tag128-key128",
.keylen=128,
.ivlen=1024,
.ptlen=408,
@@ -10665,7 +10700,7 @@
][:]
],
[
- .name="aesgcm-iv1024-pt408-aad384-tag128-key128",
+ .name="aesgcm-enc-iv1024-pt408-aad384-tag128-key128",
.keylen=128,
.ivlen=1024,
.ptlen=408,
@@ -10810,7 +10845,7 @@
][:]
],
[
- .name="aesgcm-iv1024-pt408-aad720-tag128-key128",
+ .name="aesgcm-enc-iv1024-pt408-aad720-tag128-key128",
.keylen=128,
.ivlen=1024,
.ptlen=408,
@@ -10951,6 +10986,10884 @@
.aad = "8683c57889cb638e234550ed5ac5eae6dbc8ad158d688966d5a49fb41e54d77f8e1070cc2322cb8af7a3611d84b5e904022b706b630c5a18a6b0750e12c8c7723f77026e711b975ffc86bc88292a843832de3e3846ab13086b8d",
.ct = "1ff700a4e182f4865f915f8a63f66cedf3dbe8ede9dc220cb58d260f33dfe127c0d1057b9760c23b043041e93fb13ae6312b2d",
.tag = "f4f5288be4136b9b46c75459a5415223",
+ ],
+ ][:]
+ ],
+][:]
+
+const dectests : testgroup[:] = [
+ [
+ .name="aesgcm-dec-iv96-pt0-aad0-tag128-key128",
+ .keylen=128,
+ .ivlen=96,
+ .ptlen=0,
+ .aadlen=0,
+ .taglen=128,
+ .cases=[
+ [
+ .count = 0,
+ .key = "cf063a34d4a9a76c2c86787d3f96db71",
+ .iv = "113b9785971864c83b01c787",
+ .ct = "",
+ .aad = "",
+ .tag = "72ac8493e3a5228b5d130a69d2510e42",
+ .pt = "",
+ ],
+ [
+ .count = 1,
+ .key = "a49a5e26a2f8cb63d05546c2a62f5343",
+ .iv = "907763b19b9b4ab6bd4f0281",
+ .ct = "",
+ .aad = "",
+ .tag = "a2be08210d8c470a8df6e8fbd79ec5cf",
+ .fail = true,
+ ],
+ [
+ .count = 2,
+ .key = "2ad0bf5aeb47a0c1a98da3dfdab4fded",
+ .iv = "25f1b6091ee7040fea4ba854",
+ .ct = "",
+ .aad = "",
+ .tag = "d7963d240317653e01cf5abe5d0966ae",
+ .pt = "",
+ ],
+ [
+ .count = 3,
+ .key = "d8cd400a0a73d114cd3ecf36537cab3d",
+ .iv = "3c162c9f16a49b8fe6c92a81",
+ .ct = "",
+ .aad = "",
+ .tag = "4203aec165f9d397cf9009770a088c16",
+ .fail = true,
+ ],
+ [
+ .count = 4,
+ .key = "a982a7bae2b3eae1b7832f16faf693b4",
+ .iv = "78d2d2fa43850483ce933576",
+ .ct = "",
+ .aad = "",
+ .tag = "ceabb89ee3179e25ed32d5a225006361",
+ .pt = "",
+ ],
+ [
+ .count = 5,
+ .key = "f9e3992196f7d7a21bd956f4b5a5ffce",
+ .iv = "0794a6bdf5f198c9f193b9ba",
+ .ct = "",
+ .aad = "",
+ .tag = "f8247fd5dc7bd6d40e96af32aa9c1889",
+ .pt = "",
+ ],
+ [
+ .count = 6,
+ .key = "c91aab7ebe13653a71a4232fd1beb793",
+ .iv = "7799464b6de6383da0daec52",
+ .ct = "",
+ .aad = "",
+ .tag = "00c4f7033f3c05e9d531f3ca573dc98d",
+ .fail = true,
+ ],
+ [
+ .count = 7,
+ .key = "e7e4eefd0a3abd4ee1bef270d257eab7",
+ .iv = "f548f2a04a50a2f0342b2250",
+ .ct = "",
+ .aad = "",
+ .tag = "044159b8a18668167fbd28ac500c20fe",
+ .pt = "",
+ ],
+ [
+ .count = 8,
+ .key = "1bd49e553457459aee1b5d83e7c216a2",
+ .iv = "2b37cf40ed2685eb2a907cd0",
+ .ct = "",
+ .aad = "",
+ .tag = "fcb41d17fdb023d4d14f84a387d3ad77",
+ .fail = true,
+ ],
+ [
+ .count = 9,
+ .key = "4d6486fa68ce5a14b9db7334ab4838cb",
+ .iv = "afad3f4190d56a1b8eb08e58",
+ .ct = "",
+ .aad = "",
+ .tag = "4bda04755b7ce9da020ce7467a5ced8f",
+ .fail = true,
+ ],
+ [
+ .count = 10,
+ .key = "da5b59d5eb448fd6c08c350df9a82114",
+ .iv = "15fb65d9fe2fa27f226312c0",
+ .ct = "",
+ .aad = "",
+ .tag = "e407fccbb9f00eeb9cef4a520cff957c",
+ .fail = true,
+ ],
+ [
+ .count = 11,
+ .key = "07d5a7d405b21c64d74cc0988693b784",
+ .iv = "2eefd7990ea025925e9ca6f9",
+ .ct = "",
+ .aad = "",
+ .tag = "1439522d18c9eb129f1f776590027761",
+ .fail = true,
+ ],
+ [
+ .count = 12,
+ .key = "48760dec952010140ffc4b4078438b56",
+ .iv = "930cc3ff276d7bbb74d187ef",
+ .ct = "",
+ .aad = "",
+ .tag = "8673dcb97934d54dc17de0037344737f",
+ .fail = true,
+ ],
+ [
+ .count = 13,
+ .key = "ed7c50762dc0dc4aa5c8be4cf0a56b88",
+ .iv = "50dfb73b5034cffb6709af8f",
+ .ct = "",
+ .aad = "",
+ .tag = "cb02203ee8eccec446ed1c2cf68fd1c0",
+ .fail = true,
+ ],
+ [
+ .count = 14,
+ .key = "b5d4b3e80a56adbc780ff02c5da6a7ab",
+ .iv = "abc5b96c5e872502971dcc55",
+ .ct = "",
+ .aad = "",
+ .tag = "4e85677cc16e2b2fb50a2ca9c0ac1b9c",
+ .fail = true,
+ ],
+ ][:]
+ ],
+ [
+ .name="aesgcm-dec-iv96-pt0-aad128-tag128-key128",
+ .keylen=128,
+ .ivlen=96,
+ .ptlen=0,
+ .aadlen=128,
+ .taglen=128,
+ .cases=[
+ [
+ .count = 0,
+ .key = "d1f6af919cde85661208bdce0c27cb22",
+ .iv = "898c6929b435017bf031c3c5",
+ .ct = "",
+ .aad = "7c5faa40e636bbc91107e68010c92b9f",
+ .tag = "ae45f11777540a2caeb128be8092468a",
+ .fail = true,
+ ],
+ [
+ .count = 1,
+ .key = "2370e320d4344208e0ff5683f243b213",
+ .iv = "04dbb82f044d30831c441228",
+ .ct = "",
+ .aad = "d43a8e5089eea0d026c03a85178b27da",
+ .tag = "2a049c049d25aa95969b451d93c31c6e",
+ .pt = "",
+ ],
+ [
+ .count = 2,
+ .key = "bc3ab28150fd4cb731d5f48ed2784173",
+ .iv = "40408445c203c647312b8f01",
+ .ct = "",
+ .aad = "53d2fc19963fc99a36a524e39cb68aa8",
+ .tag = "3f04dbd2f49909f73044175041fd9eff",
+ .pt = "",
+ ],
+ [
+ .count = 3,
+ .key = "34537f1a0ba093aefedefe8b4b6b34e7",
+ .iv = "9c5fc88eb388ef6776aa2182",
+ .ct = "",
+ .aad = "4dd377d089c617dda1ecd42341d1878b",
+ .tag = "c0fccde30ba354e23c05b5371c40d088",
+ .pt = "",
+ ],
+ [
+ .count = 4,
+ .key = "54c3f935982de19de88d6384f9493389",
+ .iv = "3d7eec1cdf3cd419511793ab",
+ .ct = "",
+ .aad = "2ded8cbc69fa57678aadc7477f2a2173",
+ .tag = "74107fc192c94a7d85d0f9205f8b02c9",
+ .pt = "",
+ ],
+ [
+ .count = 5,
+ .key = "790f8945b127a1a418d6d58b4378e0dc",
+ .iv = "f5694d77b816f2cef0ac80fc",
+ .ct = "",
+ .aad = "e5c71b82a60c97f050511a3b9a09e450",
+ .tag = "4c75effb688dccd0affe92c0e0391d64",
+ .pt = "",
+ ],
+ [
+ .count = 6,
+ .key = "f6ed6f0afea7e99ab320b525107715c9",
+ .iv = "351e7dc999b9de77ce61b2f7",
+ .ct = "",
+ .aad = "c9101b64e0b6abc0e46828aec14d29cc",
+ .tag = "4f2ec2e1ab001443a60722671a9c9656",
+ .fail = true,
+ ],
+ [
+ .count = 7,
+ .key = "2eccf9cda0e4e70f273ee8251120c768",
+ .iv = "1d869f4b8497bc19d948cea6",
+ .ct = "",
+ .aad = "1d86a6a21f23ee56ad0fa6c1de525906",
+ .tag = "37ffc390298c3ea8cceb382f394c2fc2",
+ .fail = true,
+ ],
+ [
+ .count = 8,
+ .key = "d61767f07b959e94f73c64cb5a5520b3",
+ .iv = "ecfa850395f8cf9348f1324f",
+ .ct = "",
+ .aad = "c3571bf1700b114bbf0c6bb2278d4d88",
+ .tag = "1065f86bc9e22197880ea87ac326a17f",
+ .fail = true,
+ ],
+ [
+ .count = 9,
+ .key = "9421cac15ce7d49ec7c088f7524a1ff5",
+ .iv = "b3d395bca123b265c05577cc",
+ .ct = "",
+ .aad = "eb6e06071dae4360e8347bfb72d9c188",
+ .tag = "1f04c228c7efc71f1706d10fd819f35e",
+ .pt = "",
+ ],
+ [
+ .count = 10,
+ .key = "8580395a5d777c1690af79f6068e291b",
+ .iv = "cad1a0f2b76f064ca56be3cf",
+ .ct = "",
+ .aad = "174388edf0b7f86fe634cb942c13754b",
+ .tag = "0067b03f2e0efc72cb08792fbe3b0267",
+ .pt = "",
+ ],
+ [
+ .count = 11,
+ .key = "0c21da9c8b84d371fde59e6d1752113e",
+ .iv = "f8c13e58aaa329427438db8b",
+ .ct = "",
+ .aad = "b8b197789cfd085b09a47760c28c7e8a",
+ .tag = "f8613cc5dcb4cc5c78f1f7c2d8084ec6",
+ .pt = "",
+ ],
+ [
+ .count = 12,
+ .key = "162fc51e46e771222a04842f5546db8c",
+ .iv = "13557e09e738eb895eca2d8d",
+ .ct = "",
+ .aad = "691e71952c31a6b49b785f627c03e948",
+ .tag = "4f7ea723b1abd74e53fa356809275ca4",
+ .pt = "",
+ ],
+ [
+ .count = 13,
+ .key = "c46d9562d954801b8e99e4e57cbcc0ec",
+ .iv = "30414c934b14e0bb0110ae44",
+ .ct = "",
+ .aad = "41ae6a63855c1944446491e80670bf68",
+ .tag = "3e2366a2cf5632c1ecfde33f1f5f6d18",
+ .fail = true,
+ ],
+ [
+ .count = 14,
+ .key = "2904df4dafcc6bbb8375baf6a7eede80",
+ .iv = "6aae8ff4b1609f4026b47259",
+ .ct = "",
+ .aad = "c4afa7b21e5f41b892be52365a18584e",
+ .tag = "e1810fe340207fa83815182bbad62bde",
+ .fail = true,
+ ],
+ ][:]
+ ],
+ [
+ .name="aesgcm-dec-iv96-pt0-aad160-tag128-key128",
+ .keylen=128,
+ .ivlen=96,
+ .ptlen=0,
+ .aadlen=160,
+ .taglen=128,
+ .cases=[
+ [
+ .count = 0,
+ .key = "b1089cecac8e1a56441353857246773c",
+ .iv = "1af1e6f40b1b21fcb38f65a5",
+ .ct = "",
+ .aad = "ed825cbf40e8f8f198ce1afd1141a3cf391cee73",
+ .tag = "0edb6756481560956d506a8cdb082db0",
+ .fail = true,
+ ],
+ [
+ .count = 1,
+ .key = "e6a76441748e6903a8b7ef114f631dd8",
+ .iv = "79706e2030f9938576d8d9ae",
+ .ct = "",
+ .aad = "d2e6fc9e97ed37a0530f2744ca58ed81f0ddd99f",
+ .tag = "102bb898d4ca9780a69aa159e8c92228",
+ .fail = true,
+ ],
+ [
+ .count = 2,
+ .key = "5211242698bed4774a090620a6ca56f3",
+ .iv = "b1e1349120b6e832ef976f5d",
+ .ct = "",
+ .aad = "b6d729aab8e6416d7002b9faa794c410d8d2f193",
+ .tag = "0f247e7f9c2505de374006738018493b",
+ .pt = "",
+ ],
+ [
+ .count = 3,
+ .key = "0335807df98f4728dc982efef77686bb",
+ .iv = "5cceb5114b6701989957c926",
+ .ct = "",
+ .aad = "5bc191e74d849733fea6b8212d01a19ac274bdac",
+ .tag = "3f5e29ded16cb63f9ba8c103fe753595",
+ .fail = true,
+ ],
+ [
+ .count = 4,
+ .key = "11200dc2b58b3601f95f95cb80845493",
+ .iv = "bfc175513fb49d9be980d6b2",
+ .ct = "",
+ .aad = "2740904aa8b7096a7bd7400b3023ecd042061a68",
+ .tag = "548deef09fb8d22252f956b28d8807a4",
+ .fail = true,
+ ],
+ [
+ .count = 5,
+ .key = "f8869d9df1ac6da86e905442fc425c92",
+ .iv = "22b0af177e3154cfef3dc2b0",
+ .ct = "",
+ .aad = "e07715b1d919f8bcb8b2c4ba998b87e6286d82fe",
+ .tag = "e08ea41cf27f344db855564cb94842b1",
+ .pt = "",
+ ],
+ [
+ .count = 6,
+ .key = "dc945bb910f648b228482ff6ea37c0dd",
+ .iv = "6fe11889b190056d77d3114b",
+ .ct = "",
+ .aad = "925c4a09fabba4d9df9320735f4753d0d75a2eb1",
+ .tag = "4f4a5106624a7eb722a4d0ed56b074ae",
+ .fail = true,
+ ],
+ [
+ .count = 7,
+ .key = "e97ef05d5272238514b40eb9dc37254d",
+ .iv = "77b02548a863130e64c4f23a",
+ .ct = "",
+ .aad = "16d11153706a45edcf5ab14775d6fb117c99efba",
+ .tag = "49a4c763ed312224796fa0981b2f6067",
+ .pt = "",
+ ],
+ [
+ .count = 8,
+ .key = "10486a4ec7a139c45392d11389312b65",
+ .iv = "e5fd821c83a47ca17baee945",
+ .ct = "",
+ .aad = "9e794623863a6a8f7600e5d3dc906fb569e2d621",
+ .tag = "2255a12c2d4bd77a1e557f0f332f747e",
+ .fail = true,
+ ],
+ [
+ .count = 9,
+ .key = "5b360040bb672a55a8a893afe9309169",
+ .iv = "d4795970cf41b54f673a5367",
+ .ct = "",
+ .aad = "00fccf7ea5873e5bd437b4ef5e3b8543afdf0214",
+ .tag = "a104513ebe3adaf87b7284d1f1c71c12",
+ .fail = true,
+ ],
+ [
+ .count = 10,
+ .key = "27bd1dacc704c5bbcbd7615ac5ebee14",
+ .iv = "444d84e15fc7ccfb62aa46c5",
+ .ct = "",
+ .aad = "0d964255b4862bc2c790d0112fd0b67c29fd7e88",
+ .tag = "3330fcc53223b49b5ef51d9352b32e97",
+ .fail = true,
+ ],
+ [
+ .count = 11,
+ .key = "7f0cb9efbcda58d5929632770b4ed3c3",
+ .iv = "9d5f05f623dbd0d68c3940af",
+ .ct = "",
+ .aad = "74af77b5479ff8081486ebb2411d68632b964868",
+ .tag = "d31b61e0c93b825efc7f04a9e219dc03",
+ .fail = true,
+ ],
+ [
+ .count = 12,
+ .key = "1bf60336203befd206d5e6cbe485dd1c",
+ .iv = "4e75611acd124375b7805908",
+ .ct = "",
+ .aad = "32b4b023b13718da023d5f078b8d61c13640a33d",
+ .tag = "ee2fdafb44210218c95091dcaf6252b5",
+ .pt = "",
+ ],
+ [
+ .count = 13,
+ .key = "a6647da2721ee284eaec27ef95e6de0a",
+ .iv = "4c99b4c11b5403f164fb68c5",
+ .ct = "",
+ .aad = "c1e82a1c4324eb09add805623f9af291709ad9b0",
+ .tag = "e892470ed058683bd5574c7295d84b2e",
+ .pt = "",
+ ],
+ [
+ .count = 14,
+ .key = "423506441e5237fbdead27eea94fd0a5",
+ .iv = "5d390c71f28a2f09fdab125e",
+ .ct = "",
+ .aad = "d78b51b89e01771483423024184eed27ca0ab8c3",
+ .tag = "8485ab4c8b8b0f9f2555aafa55680751",
+ .fail = true,
+ ],
+ ][:]
+ ],
+ [
+ .name="aesgcm-dec-iv96-pt0-aad384-tag128-key128",
+ .keylen=128,
+ .ivlen=96,
+ .ptlen=0,
+ .aadlen=384,
+ .taglen=128,
+ .cases=[
+ [
+ .count = 0,
+ .key = "748146a0b1d5e9b6facdd95e8a3295be",
+ .iv = "99e8394910c21207541ca90c",
+ .ct = "",
+ .aad = "5ce0d8dbac8a82fa8dd7aec334b81301b31ab49f3b40a1857cc540a1d992f27f80945dfcb4730dc81ddfd32dee1825d6",
+ .tag = "847292904038c42168adf62011dc790e",
+ .fail = true,
+ ],
+ [
+ .count = 1,
+ .key = "762da58bb000f5d499818bc859989a30",
+ .iv = "584c291ff1aa388a5112521e",
+ .ct = "",
+ .aad = "91f92e8bbda7b5ec967ade766f4f26e9189eaafad416f37b4891d3e37d70cb9a267aa843dd202858ade020261223dfce",
+ .tag = "9ac7eb2d762facae06086c957959880e",
+ .pt = "",
+ ],
+ [
+ .count = 2,
+ .key = "4ae615ef5f3e1ac590d4e5b8623173ba",
+ .iv = "3a998fbdf1131c8992e95bf1",
+ .ct = "",
+ .aad = "81edcccd1ace673b96fa3b74a2f99fc63bca822f6b9c6b99477b479d5d13b8dca5f6ef726718346ba22c9f492b30d6ba",
+ .tag = "93cfa8f4dc1da3429eb9dca26ed45024",
+ .fail = true,
+ ],
+ [
+ .count = 3,
+ .key = "2dd1a4bc80d9ae6773fe3284e7f7e734",
+ .iv = "404c5b85d1429e48348ee225",
+ .ct = "",
+ .aad = "861f17b5e33b17369021b8b2054131715bea7cebaaf732066da9a172341eae3b47a0d49923b25463caabcac6ffb7b5ea",
+ .tag = "e0fadad353d1d29ec6503dd2e049d6a9",
+ .pt = "",
+ ],
+ [
+ .count = 4,
+ .key = "d4eb3c0ac7156ebb5267f9ad2de162ac",
+ .iv = "74aed5826dc979d6b1c1011d",
+ .ct = "",
+ .aad = "34d2a785c9f47a83ed19e48ae1ee57745cbd9f30af5b9e6e633e9106d2f36a379e08d85b52acf9a14663a28d68808eab",
+ .tag = "278acb3388978409d9fc2f6380ceffc3",
+ .fail = true,
+ ],
+ [
+ .count = 5,
+ .key = "efbe4777ad529213599ea7bf82d4b0fa",
+ .iv = "8692f09a527d3e5d3cd152f7",
+ .ct = "",
+ .aad = "95bff730bea903af3482913f712b4fe9da387f5104131ac03b2f94569957ab93af9bc6c3a405133d6874e6e466a3d011",
+ .tag = "7ddf730b688f268cdb7a32757f34817a",
+ .fail = true,
+ ],
+ [
+ .count = 6,
+ .key = "e024812778ce3c9659fa6b3ab917f38b",
+ .iv = "8a2ea9d140a8193572bc37c5",
+ .ct = "",
+ .aad = "56b2c2f68ac50885a3a4bfc4fb8845a1c6e8704c0d89237566e551d59607bffe6e557c0dbff15a91a177905b526838db",
+ .tag = "21706b2f8cd2f4d51aeefa3604d7f6d2",
+ .pt = "",
+ ],
+ [
+ .count = 7,
+ .key = "293ae2e14a6a874c214ddd12ffd6a908",
+ .iv = "542039d5e5b54222f8153747",
+ .ct = "",
+ .aad = "bc51a6a29a897a9fe4b955f270e21ef5768e55c11c9d9d16b4934cb3c8524c29e50d4b02b671c5a1b25a46991e62c65e",
+ .tag = "612c4c96e6cd10c13a98ce5fb87bebd8",
+ .pt = "",
+ ],
+ [
+ .count = 8,
+ .key = "cb803f23f8c97ff4774ea37856c90f0f",
+ .iv = "a3ec912bf0a0ad64e23e6c9d",
+ .ct = "",
+ .aad = "6c0f16c8e70852270b16a3eafdc5aaab1a3279d803d535b23292bd12bc2fa7da0a63f837c0093167029689c2bbe89bdb",
+ .tag = "396a389e9e59b742dbe52fa277a05458",
+ .fail = true,
+ ],
+ [
+ .count = 9,
+ .key = "53101ae08ff3d972d437498253ad4911",
+ .iv = "1748c2f3c6a7d2de3bbf91c2",
+ .ct = "",
+ .aad = "e166984563c1afb505b220490e3aabc8cfc07cd143960e3f0c068f395b5bcbb2e3f1f43c2e3ab33a4f14ad07d33273d9",
+ .tag = "250d1b4411d5c3fe0edff3fbc0814be3",
+ .pt = "",
+ ],
+ [
+ .count = 10,
+ .key = "c084b3bab6c3537c65621af9c0967acc",
+ .iv = "9a3b67c8288aeeb555e94907",
+ .ct = "",
+ .aad = "8a194907eb9fbc4b12b8bb294d552d587cd267ce6dbc46191be1983243b6bc601db78b1ec8ff402e1087614991438bc0",
+ .tag = "e2dede4cebfa914eb7821c912768a3e1",
+ .fail = true,
+ ],
+ [
+ .count = 11,
+ .key = "626125a33643839c534556d87b0a485f",
+ .iv = "e7a2d435326d79f3ab43d3b5",
+ .ct = "",
+ .aad = "086edfdb0afd60f10e5e8b628c31ac7094a41f22a33a85f3081aa53e733072825275aed31477246578bd97575e32961c",
+ .tag = "66b38f7467273180d6672d34658fd6b7",
+ .fail = true,
+ ],
+ [
+ .count = 12,
+ .key = "cc53a3209ed65930bbd535e4ad7be780",
+ .iv = "b7606cd869fcf69f5bac64a0",
+ .ct = "",
+ .aad = "0ab24056d93d5be92c630fa615864deb7f85712188b576d11f12275b7188e3ac2afa6c4d3a4918df9344deae010902b1",
+ .tag = "fef072eff57121c8c780eb5c6ad55538",
+ .pt = "",
+ ],
+ [
+ .count = 13,
+ .key = "ce84d222d62a6b28c636c1f0a36dfbe1",
+ .iv = "3185d862c8a323ad7b433ea0",
+ .ct = "",
+ .aad = "8c6c6de46b003a1265ea02caff3d8474ac99c84874c106d33ffc013c2c60ddc8bd46c7df402db609f854986fcbb44794",
+ .tag = "a5a299bf09883e2fc323ee5eb88818e1",
+ .fail = true,
+ ],
+ [
+ .count = 14,
+ .key = "53580849635cce269e3bb897dcf9786a",
+ .iv = "76849053a7b046c1fdffd092",
+ .ct = "",
+ .aad = "04bfad7c77e4db850c2bfca5a55a2a5c33019a4327bf850f7a70734bca688ce5551fd76d0593105515ad76c12dd69d58",
+ .tag = "9e7e1c5dccd58fea67a8648d50e5b6ef",
+ .fail = true,
+ ],
+ ][:]
+ ],
+ [
+ .name="aesgcm-dec-iv96-pt0-aad720-tag128-key128",
+ .keylen=128,
+ .ivlen=96,
+ .ptlen=0,
+ .aadlen=720,
+ .taglen=128,
+ .cases=[
+ [
+ .count = 0,
+ .key = "c1e007d318d0e5c87d28fd890dfb04ba",
+ .iv = "d7bc58d494491ff57639b60b",
+ .ct = "",
+ .aad = "10c68681c6d700ffc72ea9a790cdc9ddc1904c7e886e23ca166dbfa364a4c5f95205bdd1f22eeebefbbb9375f1a416ec7faed6cfdf706085f8fd2632c7a261a78875811f17fba19baf905f0aa623e67175f2158cda313a5047e3",
+ .tag = "2f1ede16f025bc8c5421854b5f0109d1",
+ .fail = true,
+ ],
+ [
+ .count = 1,
+ .key = "8dc7a59a71cd76499de67feac53c786a",
+ .iv = "beb45b75ea5b7750e69a409d",
+ .ct = "",
+ .aad = "8bade18807ac5fe59cfd34d7eed8ae33dfeeb960d2a15693837f22dd98f68715079d358a49a04a7b231d486ae45f4cd6c0fe3cde6c0d967ce8d84bbf2e4be2db793afb72ea83c7b21a73f65742c214768f7e6133e3814059efb6",
+ .tag = "46e8457d8d409f2a0690e6502f8b7a87",
+ .pt = "",
+ ],
+ [
+ .count = 2,
+ .key = "30b0bda9871e1732051ab0facb819848",
+ .iv = "a071b9e1f103bdedf419872d",
+ .ct = "",
+ .aad = "f2295256508b41b6849a3a08b3a4586abfa5a2b35f9b30d0cc59755314b32d6a890973c568a14d4c313f79c47c83c1f0d2b76a006224926fec7ab9b208c34a6e8f8d6ef4b4a75c9952ca35cb81071314b70e65faaf9854f8c32d",
+ .tag = "6f51e06b3aa3c7869e00e3fb07f512d8",
+ .fail = true,
+ ],
+ [
+ .count = 3,
+ .key = "2a032eb1893c4ad9e78c5ed4fcae3c74",
+ .iv = "36839f2a8b1d6df1f9f0ec38",
+ .ct = "",
+ .aad = "9228a9d72656b32e0342bc4ebdcfdafc2a4b11214ac8caa4c772a95809dea77e49ce4e052b748a662bc1ff7bf57ed9b784d75a349769e23018f406aebf6eae30a5e9364795b58620248ef6cd42db55ee7e49f472c602a3445140",
+ .tag = "610fdb18669a32e7fe24348ebc77ae15",
+ .pt = "",
+ ],
+ [
+ .count = 4,
+ .key = "68dbff539c8ac07c0d66e3c8aa883655",
+ .iv = "daa344a429db89941f629bae",
+ .ct = "",
+ .aad = "8685accfe29a7e07d92aae2cebd25d3349bc917d81c3e999a009836e14611c083e6b3ca4257ffdfb7c2f53a867bf24c739f18c0d807222fb0bffa921da2835b33d0b79e666af0ac7be3fd288f38a086806045732b5a495d65774",
+ .tag = "b5f74d514ad2eac63aba6367c5d7f843",
+ .pt = "",
+ ],
+ [
+ .count = 5,
+ .key = "d5e22e409e61c7e57687a143ee5dde17",
+ .iv = "6a1b9b8b9fa5d3b14758a9a4",
+ .ct = "",
+ .aad = "eed5683b9e0c4080f6fd5b4fb896a2ee752df04a8f9cb34ac5fe1a0862b2431d4abe6e96e2983d850c85de17a31b612b02c344fc4c5a8e964ac1c60ea15eb1f6146429304338d3a928c84b0725d0956813f5dec79bc8b9a5acd4",
+ .tag = "adb6051f2a18fdbe63ae4878ec3f3788",
+ .fail = true,
+ ],
+ [
+ .count = 6,
+ .key = "7bdc885dfbbda27482afeaa8aa30a94d",
+ .iv = "6a52105223c62f0e6761aee1",
+ .ct = "",
+ .aad = "7aacf0bc8542d867a77411ddb0c9a70889fd395e01a5befdb26f0b45caf8cceb36696ed5b849251aff29eac75af7b12735daaf671412f6e1a62e21bda88c1618cd0a9fe09d5d340ee67711ae90822877bbce83adbe38b7f25d4d",
+ .tag = "08bba50afb61ae82ed578a139804c3ad",
+ .pt = "",
+ ],
+ [
+ .count = 7,
+ .key = "549cb40fb29c51656d1788024a75b80f",
+ .iv = "8f9135503f55ff1a76a41553",
+ .ct = "",
+ .aad = "ac136573ae52f3a4e4a5f6161a2db70c24428fc2fe0d810b31419690a36c1d5bb6bf36d09f24b601cb558c5eeae8662d29c84e06e2e0927857945543b13db85b50ac28c4de1563d9f0ccfa85d032f3a59c1f3cb0acba07b61097",
+ .tag = "1fb97bae89bc87d6fea1f5fb571480b0",
+ .fail = true,
+ ],
+ [
+ .count = 8,
+ .key = "fa52f5e8446617e8029800ab73c109d2",
+ .iv = "92b4eb872cc5acc27b2c8f93",
+ .ct = "",
+ .aad = "e6f02753b83cdcd961a5455c34329f0358a1d9acc10f17a29dbfb7aaebae6f4b80481dc9aa3abf553aef570b01baa61a84820f20b0c051676fe2fd42cf9fce3c4bf221fec2519237cb9b7da6613a4be3eabb154c37b9c69c9c12",
+ .tag = "735b2a825bd1e288bd66e98e44fc0348",
+ .pt = "",
+ ],
+ [
+ .count = 9,
+ .key = "a3cc611d369a5c06d1c0d171be2cb25d",
+ .iv = "730b0cc99066bc7bd7b3ec9f",
+ .ct = "",
+ .aad = "84d86f689a1137920c1eef9dc0c27a3ca069f0f7943c4aca10bc47a67da7b8f4ce9558f53397f15dfed1df9f9bef61a7eef2b064b46bacf4f673b37e6d813fd408ccd9632628f0cd89db27c00e268c45c581ee8e189b14adb16b",
+ .tag = "a3d510d67716ce87471e807e188822bf",
+ .pt = "",
+ ],
+ [
+ .count = 10,
+ .key = "5fe29162dc4d5a511d373331573a4e26",
+ .iv = "d36edb05eaf746fbc48d1dc5",
+ .ct = "",
+ .aad = "dcd82c91702c2fc562ea7636d89aa7f4679afef80b85a4f3ce9c32a5a632a42d688416c65d47b314c8d272b77d8c447a4ea186230d03d30065b3339b0750f350b18ed7c82ebb16105fc98f2cd04c827f5fe2f3904d67d75a8961",
+ .tag = "aafafcd6c396211704f3f708f167c781",
+ .fail = true,
+ ],
+ [
+ .count = 11,
+ .key = "2dcf7a69aea4aaabc9849c57f915bd68",
+ .iv = "d1d48a6e01c482f47d7b8871",
+ .ct = "",
+ .aad = "345e8d49f3441bd55e3046cca636578084a2a7d7686c56c9bf8e4e29f2eb996b4ec537b7a10046b7ae514c76ddc8293eed583f1bbf0b45a90784e10fb83a5e837935547ab9555c4f8b93b44653944733e3691b9a14c0b9839e60",
+ .tag = "33b09fc073c3c3404a5661ef2d934e08",
+ .fail = true,
+ ],
+ [
+ .count = 12,
+ .key = "1579609bf33cdaa69ced53613557090c",
+ .iv = "d64d1081db1d825fc692a28b",
+ .ct = "",
+ .aad = "9ed4a0960782e2fc4b88b6b3f3fa5fe976e5e160053c68def773a55dc8520d626fc0f3447b91a5217054c03ab72f19e53514bf38a3e2ab4b632dd5e338903b727e02327d9919c00657dd3457112714c9e9cda2df44f644b32bd1",
+ .tag = "198ca0c5e52ba7e8ed8b9310a05a1ebd",
+ .fail = true,
+ ],
+ [
+ .count = 13,
+ .key = "60920e056ead9a73080f27038956884d",
+ .iv = "8cf4c1764ea1e6b9083952c4",
+ .ct = "",
+ .aad = "ee3fb4f08c9c6f7ecc7537035366d35793fbcb02605f1891acc539d9128ddcc6eff7d91936290490e4b28da8c2126d163565e0bd048a6f0a66a277daff4a03864c746f9dc3faea70d1fb4628d66a34a86fcdf91f2a176ce94863",
+ .tag = "41927cbc3ee0ed121f7884f0b32b024a",
+ .fail = true,
+ ],
+ [
+ .count = 14,
+ .key = "2c084c95bb67293258e7e68492cb7d90",
+ .iv = "60f0c5264a7743f548db8b2f",
+ .ct = "",
+ .aad = "7aac62d17794ce516c4a20e32ae8c7aa0be8e483f6e5643b77df5550498ccb1adcacc28366335d48007a094588e946ea98699e5323be8269151a7df2824e808b1388667170221a74197e3ca403fbe41be95b75afb98bcd2a5c14",
+ .tag = "84e9567a61b9a6bbf901c86b8f2606f1",
+ .fail = true,
+ ],
+ ][:]
+ ],
+ [
+ .name="aesgcm-dec-iv96-pt128-aad0-tag128-key128",
+ .keylen=128,
+ .ivlen=96,
+ .ptlen=128,
+ .aadlen=0,
+ .taglen=128,
+ .cases=[
+ [
+ .count = 0,
+ .key = "e98b72a9881a84ca6b76e0f43e68647a",
+ .iv = "8b23299fde174053f3d652ba",
+ .ct = "5a3c1cf1985dbb8bed818036fdd5ab42",
+ .aad = "",
+ .tag = "23c7ab0f952b7091cd324835043b5eb5",
+ .pt = "28286a321293253c3e0aa2704a278032",
+ ],
+ [
+ .count = 1,
+ .key = "33240636cd3236165f1a553b773e728e",
+ .iv = "17c4d61493ecdc8f31700b12",
+ .ct = "47bb7e23f7bdfe05a8091ac90e4f8b2e",
+ .aad = "",
+ .tag = "b723c70e931d9785f40fd4ab1d612dc9",
+ .pt = "95695a5b12f2870b9cc5fdc8f218a97d",
+ ],
+ [
+ .count = 2,
+ .key = "5164df856f1e9cac04a79b808dc5be39",
+ .iv = "e76925d5355e0584ce871b2b",
+ .ct = "0216c899c88d6e32c958c7e553daa5bc",
+ .aad = "",
+ .tag = "a145319896329c96df291f64efbe0e3a",
+ .fail = true,
+ ],
+ [
+ .count = 3,
+ .key = "b1191a672cc55496b3c728d6a67de0ae",
+ .iv = "d0b4fa7c7f107f98f66b0195",
+ .ct = "ab957acc04c1034d8acc617c0b20f78d",
+ .aad = "",
+ .tag = "a93cc22f6086e816016606b9ad0ba697",
+ .fail = true,
+ ],
+ [
+ .count = 4,
+ .key = "ca7db9e97cfa056b80dcd04f46228640",
+ .iv = "5e8dc246ee835dc5f229d698",
+ .ct = "178ce3bd56ae27f9812e91b942c1309e",
+ .aad = "",
+ .tag = "c633075a8b608d5f96971d2bc1ea2a0e",
+ .pt = "964610fb6585cbbb070fd9ab10a7a600",
+ ],
+ [
+ .count = 5,
+ .key = "206209e6f2d16b268dbec05972431405",
+ .iv = "95194cb4ba24ea0476ca5ae4",
+ .ct = "493461aeda5a0c7d18edfb11ca8277c7",
+ .aad = "",
+ .tag = "865615a1484744a9c55e480871472e81",
+ .fail = true,
+ ],
+ [
+ .count = 6,
+ .key = "bc722187a3729a4d0292fa73d4471605",
+ .iv = "a72d339ad829c9601d00a6ef",
+ .ct = "b44481ab49863873ffa2a377aa7b759e",
+ .aad = "",
+ .tag = "4d587a7d3b5eb1186d2eacce9bb51c04",
+ .pt = "9dfac38da5811b3c4712439117f7520e",
+ ],
+ [
+ .count = 7,
+ .key = "0631c9595b5cb7f9f94aea4940125f19",
+ .iv = "673d7e9aaedab36cbb2afa0e",
+ .ct = "d558f237bc04b41c8155ef643511c52c",
+ .aad = "",
+ .tag = "482a54ff2d9270d70375e4d8db646744",
+ .fail = true,
+ ],
+ [
+ .count = 8,
+ .key = "722bb99f8321eebaa61dd0086fd63e5e",
+ .iv = "47e36c71c70c2bb662cddd6a",
+ .ct = "4d3168836b0be7e7cd7b54ac95281408",
+ .aad = "",
+ .tag = "18e18960789cf650bb48d163f881fe55",
+ .fail = true,
+ ],
+ [
+ .count = 9,
+ .key = "327f9f12217e54f14bc0b38166a507ec",
+ .iv = "abf4b77903fd2894516d8fc2",
+ .ct = "3c7512dc35bd8ec80954baf49105a67a",
+ .aad = "",
+ .tag = "5e6299deac6594fd59cf073ef14ffdee",
+ .fail = true,
+ ],
+ [
+ .count = 10,
+ .key = "b7d2ebf187562bd4bef0cbfebdd7cdf4",
+ .iv = "76ff7aaa095be4111f79c74a",
+ .ct = "a998f173007ded002b3ebe264ea7f133",
+ .aad = "",
+ .tag = "a71ba4f2385bd5b615a23bdfb9dcb17f",
+ .pt = "d32e43eb1a90b626b189b6a8eb592bb8",
+ ],
+ [
+ .count = 11,
+ .key = "6956712b7392b3595132f606561c0bdf",
+ .iv = "63c54fcd8e648af4bb0f5e39",
+ .ct = "9dc01d985cd4f6cfd1eb2207761ec04b",
+ .aad = "",
+ .tag = "1d8dc617e8f49b7e92a3f5480d1d22ff",
+ .pt = "44830dd0bc8592f4a28ec79c1d0f2b53",
+ ],
+ [
+ .count = 12,
+ .key = "b3ce2c46ddf39059f683ceef05c08d38",
+ .iv = "188549f41ba61ed52e9b14ef",
+ .ct = "c06aea0ea0ec6a8446ff8f3f722cfd1c",
+ .aad = "",
+ .tag = "605ec2fe05d7067ee5371d484e5cd7dc",
+ .pt = "afff5e9becb62c8b05c26effefa3d7b2",
+ ],
+ [
+ .count = 13,
+ .key = "23ecf56f3c9ddc76e7207873824321fa",
+ .iv = "bc60bd5bca6802b526cc8361",
+ .ct = "f2f8851005b8bfb38cc3488133b004ae",
+ .aad = "",
+ .tag = "7d79d1c8742446acb45d4d0cd33886fa",
+ .pt = "5926445daca77b55857b9bd4c897c1ec",
+ ],
+ [
+ .count = 14,
+ .key = "3cf9882b08500c084ab38f26c0f3e730",
+ .iv = "615f25d13c5c4ac9d6b01932",
+ .ct = "375bca435832c7abccce9eb890807275",
+ .aad = "",
+ .tag = "57e37ba21f0aef8bc70b63f7968e9eda",
+ .pt = "dc1adbb316be8abccd87ffadfdfc7ca0",
+ ],
+ ][:]
+ ],
+ [
+ .name="aesgcm-dec-iv96-pt128-aad128-tag128-key128",
+ .keylen=128,
+ .ivlen=96,
+ .ptlen=128,
+ .aadlen=128,
+ .taglen=128,
+ .cases=[
+ [
+ .count = 0,
+ .key = "816e39070410cf2184904da03ea5075a",
+ .iv = "32c367a3362613b27fc3e67e",
+ .ct = "552ebe012e7bcf90fcef712f8344e8f1",
+ .aad = "f2a30728ed874ee02983c294435d3c16",
+ .tag = "ecaae9fc68276a45ab0ca3cb9dd9539f",
+ .pt = "ecafe96c67a1646744f1c891f5e69427",
+ ],
+ [
+ .count = 1,
+ .key = "867fc5d5476d5008f0703d81e3622255",
+ .iv = "22945529dff947c3c9264df7",
+ .ct = "1c785025e5a2678e4b29b29276e395bb",
+ .aad = "261a9efd4f32bc3d07c115b4edcf8adf",
+ .tag = "87fdf1261846164a950c37a3f2eea17d",
+ .fail = true,
+ ],
+ [
+ .count = 2,
+ .key = "3d17f97bf1dae4268b6610dc90c70b28",
+ .iv = "ebcd88fc18d4c99d28524d41",
+ .ct = "0128a239bb43c12885f9591386ecac0f",
+ .aad = "681a4feac147ee2d25e9191aaa4c8830",
+ .tag = "144def0210af9348f07afe27e65bdc7e",
+ .pt = "ec18a057c22d12373b5efe4d177eb068",
+ ],
+ [
+ .count = 3,
+ .key = "5c32091e288d4780fcaff52a69c1234e",
+ .iv = "bedb360b22847fc2ff60ab78",
+ .ct = "60c883306c91a0e6e98f8d7bf7ee9fd9",
+ .aad = "dc7c3a89a00b688af2bd372530bfed0b",
+ .tag = "ffb93af9106e95e9a65ef147765970da",
+ .fail = true,
+ ],
+ [
+ .count = 4,
+ .key = "75fb7f243336b78979988c08f39c44ab",
+ .iv = "69fed95864cad27f83503f8d",
+ .ct = "7bb1d878239966163a3db5712f57b096",
+ .aad = "b4783565715e8cdb46f8a2bb72030ce2",
+ .tag = "bfee0dda5e1afde5c7b0928774f80d21",
+ .fail = true,
+ ],
+ [
+ .count = 5,
+ .key = "7a3d71615ec0e6ee2257f33d06611b89",
+ .iv = "1ccf177092a1518be9f6612f",
+ .ct = "d0bb72968ff7fdbd3499d6e7a34ec043",
+ .aad = "0753ecc820e7ed3b6ce6b60dde776fdf",
+ .tag = "3a7c708e0e6e74a654987a257ab96461",
+ .pt = "9c0e1b4ea43af8b1d4d173b31424fa40",
+ ],
+ [
+ .count = 6,
+ .key = "bf283c584efcc4778bc6091804b2b66d",
+ .iv = "1fad1f81b45de44392497629",
+ .ct = "51f94491184b13f46defe609642adc16",
+ .aad = "791856131d5d4ed0e7b205b8b2ff4012",
+ .tag = "f2e8b0bc4e1bdd9d2604c0607c4f7fc7",
+ .pt = "c40fee049bac9b688601506d63450869",
+ ],
+ [
+ .count = 7,
+ .key = "93477009c0bbbde3aead970dd96811a9",
+ .iv = "6f096b1f3773a928301aea03",
+ .ct = "8643e7d1686b916cdd2b74f1cf26ce72",
+ .aad = "7e61a6b6cb73c187d08509ad5b940a2d",
+ .tag = "f98afcefacdc71410eef471d5bb2a599",
+ .fail = true,
+ ],
+ [
+ .count = 8,
+ .key = "ec3f4315316aca1bdc2806210bbd36ad",
+ .iv = "fa0698f32e058389f11e519e",
+ .ct = "16a9fbf2fe33d6c8c0b22117bc0e6634",
+ .aad = "414ac255598157e3b506876d00843b31",
+ .tag = "88f4a30ea229c8c4641f60363436702c",
+ .fail = true,
+ ],
+ [
+ .count = 9,
+ .key = "b431bd21c8ae9845c469b8906618e715",
+ .iv = "8579a353df1f7dd0bac1229c",
+ .ct = "bca7919e99c8de9ccb7d2dc2e1fde95b",
+ .aad = "79d9a0a2c7536fde809aeb9f084739a0",
+ .tag = "2b7d96b083a1fdafab7b64839a53b90d",
+ .pt = "8347a939a90f4e33dfc70c70e6447994",
+ ],
+ [
+ .count = 10,
+ .key = "71ccaf526ec51e5117c22869289d1b10",
+ .iv = "9fc7b2fc3a762a9c28f64200",
+ .ct = "6f65ed418dad09ffd883afcb3c3f2333",
+ .aad = "0b8ddf8514761fc60ca20c11b0a9e27b",
+ .tag = "22e0056532a847859e2aa181b80fd97e",
+ .fail = true,
+ ],
+ [
+ .count = 11,
+ .key = "42deade4fcd2728eef0c258f0f80c56e",
+ .iv = "033393d7167c23327271b58f",
+ .ct = "0cc5f4e993fcdbc81904f5b26071b360",
+ .aad = "34ae2559e79d88aa25ec8c0a97f4f8c1",
+ .tag = "cff5af162a6bf4b7e9169632a40f3f41",
+ .fail = true,
+ ],
+ [
+ .count = 12,
+ .key = "1fe8b08b096103debbebe1ed1b5e0ecf",
+ .iv = "4f2442796ffc2cd7b7a6b6c7",
+ .ct = "61ca6232340df229dea57b2bc45eed28",
+ .aad = "9c953a6b978ffd3457c0c1e2f9e29358",
+ .tag = "b61b58eda5efa804d42b8038a9ca6472",
+ .pt = "5b90f102d5cb5c4cf10db51f88d5bf03",
+ ],
+ [
+ .count = 13,
+ .key = "3f8a905c888fc42dcceac21ae09027c1",
+ .iv = "fb3db97addf0f67eb369c62c",
+ .ct = "743cdf63d80bd79d4664af2f5625d95d",
+ .aad = "b74eae31f9d55f9666899c8474cdc80e",
+ .tag = "a2bc61b1e16ac2ac9c23bf40bbfe18ad",
+ .fail = true,
+ ],
+ [
+ .count = 14,
+ .key = "fba087aa3a2b5b4109e36938d011a0b0",
+ .iv = "f92af1ed2065fac9eb4d7601",
+ .ct = "700613d946dedd760da35483ab668685",
+ .aad = "90501a414620af8e76dcf165f5cbe603",
+ .tag = "63703fac96bb981f74bc52f557271b2c",
+ .fail = true,
+ ],
+ ][:]
+ ],
+ [
+ .name="aesgcm-dec-iv96-pt128-aad160-tag128-key128",
+ .keylen=128,
+ .ivlen=96,
+ .ptlen=128,
+ .aadlen=160,
+ .taglen=128,
+ .cases=[
+ [
+ .count = 0,
+ .key = "4cf56dd7eb109452d7445e79bcad4f86",
+ .iv = "5f3724b27c345ed5d1757e9e",
+ .ct = "2d0581c040f4e2bb74423682113b818c",
+ .aad = "20fe2aa2641db7318aa5e339b1e303f952b05dc8",
+ .tag = "f090c0cba2151af2e78ef407720233db",
+ .fail = true,
+ ],
+ [
+ .count = 1,
+ .key = "d9529840200e1c17725ab52c9c927637",
+ .iv = "6e9a639d4aecc25530a8ad75",
+ .ct = "6c779895e78179783c51ade1926436b9",
+ .aad = "472a6f4e7771ca391e42065030db3ff418f3b636",
+ .tag = "4522bfdef4a635a38db5784b27d43661",
+ .pt = "8ae823895ee4e7f08bc8bad04d63c220",
+ ],
+ [
+ .count = 2,
+ .key = "43ebcf37e131a9b954bf003136e72ce2",
+ .iv = "643e6d21bda599d486f2bb1c",
+ .ct = "6d23fa3b74d3b61f7305fc87e051408b",
+ .aad = "87c99e3b4292e047ae80947fc5d46c4600d9f5ed",
+ .tag = "9c036852b5e3c0aff0bb8933796182ee",
+ .pt = "d5add8d52c941aeb874cb17d52960210",
+ ],
+ [
+ .count = 3,
+ .key = "23b0b223c477ac83757300dc0c16684a",
+ .iv = "907c5c2d91d33ae435b51be4",
+ .ct = "5943b9c9229301ce25b12e798d2f16a5",
+ .aad = "dcaff8fa814e9302f872b89e8656ee1c7c87c0f3",
+ .tag = "31fe5884756cc3225c42a82489115fa1",
+ .fail = true,
+ ],
+ [
+ .count = 4,
+ .key = "1ea8d9a553d2bc1268f528fba611e80b",
+ .iv = "91495ca2fb726f317faa265c",
+ .ct = "fffa077c1741cd9fa1923cfa7bcd8b04",
+ .aad = "55c0553c29dcf916d2cc4655a962ba18845f3d9d",
+ .tag = "e7c433cd59c3ff7e3480f664d13d02e1",
+ .fail = true,
+ ],
+ [
+ .count = 5,
+ .key = "73ca3a3548b85406e5512998339f01a8",
+ .iv = "fd1990f00d51bdced7a590e0",
+ .ct = "0afcc434cb7b7e1ec0496342aa631f75",
+ .aad = "64775d9656d9186fedb1ebbe9e45114b3a0664ac",
+ .tag = "77f14cc311d60bcf5ee95049d512eeb1",
+ .fail = true,
+ ],
+ [
+ .count = 6,
+ .key = "e9a9eb3f226d3d47212bce6498bb489d",
+ .iv = "5830becfb7ac36c00f6ff8ae",
+ .ct = "08a6f369d29adc3bf94b269938a53b6b",
+ .aad = "c4c51491b05de3c2ff006012a2e23d4eb121d3fa",
+ .tag = "1d53e69dca3ff4fae0029d013f7c349b",
+ .pt = "b7fd70ad0723c5c8e74fff3eac282bf9",
+ ],
+ [
+ .count = 7,
+ .key = "961771c760fe92821f2febe0e3ca06b3",
+ .iv = "8650d3dc83ec5cf702bb990b",
+ .ct = "20bc94651a0e4f134aa259298c9942d6",
+ .aad = "716b3419f61afc44aebdfb2ef21fccac1551de5d",
+ .tag = "868887decab5c3979fc943139d7423ed",
+ .fail = true,
+ ],
+ [
+ .count = 8,
+ .key = "903ca48ff529c6515c690a896f265999",
+ .iv = "0b42148de0d438ccd434b20c",
+ .ct = "3918bf3882b04f0857e7e405a4ebe056",
+ .aad = "a9680e1551a4b8678bf96cbc2c07ea95d0e58787",
+ .tag = "7b511865c62ac3a077348bc5671bbd50",
+ .fail = true,
+ ],
+ [
+ .count = 9,
+ .key = "9368fea0615ff679589ce50b39b097c0",
+ .iv = "5e25fda2e612c707db2ac70c",
+ .ct = "c3a2134534fbea7f5c2c53cc422e762d",
+ .aad = "01a7c360ffd013282ba1accd509c9b341dc19abc",
+ .tag = "b88c003712a5be28ae8b46706091b097",
+ .fail = true,
+ ],
+ [
+ .count = 10,
+ .key = "6b01949fe5e343d1639690477bc3a252",
+ .iv = "8d8e6f1b3685908103a9fbc6",
+ .ct = "16f4981c944c6ac60d06def4fd587ac5",
+ .aad = "38f6601845bf8b194108942da1c4934b5d2025df",
+ .tag = "c8b627db732d629be6cfeb6762cbe611",
+ .fail = true,
+ ],
+ [
+ .count = 11,
+ .key = "86827950e1d412fe4077e231141c0482",
+ .iv = "5752576285321b6483a2c192",
+ .ct = "24a18516523a69be03a62b0572a8e068",
+ .aad = "24df844d581ef17959a433bbc44b4d6665f06630",
+ .tag = "031b8c5c2c7bfcec2fc72d56f605ace7",
+ .pt = "5e0bfc67b327e725351dfdf56f3b3c18",
+ ],
+ [
+ .count = 12,
+ .key = "7ecf54b1d2d81b6ede2cd574d217d5c9",
+ .iv = "c335ee604c9055de42b2a672",
+ .ct = "fbf1dc7e4645a85ce2cb21b4b52697f6",
+ .aad = "0e65219827f0acf8b6b0e75f9397f711d0af4b21",
+ .tag = "1d6c7302bfa6451fe096289629a68049",
+ .pt = "c45dc86e1ffc3bc1013d4847b4dceb28",
+ ],
+ [
+ .count = 13,
+ .key = "da8298a837229eb7c0eec75873261458",
+ .iv = "a500b91e890d278f974f2a77",
+ .ct = "574fb01be46c7aa1e86e53dd3f31e3db",
+ .aad = "2bbcaf47d8b255075da441294403a7b8d2dd5768",
+ .tag = "3b2ce73552d83efae185506e8ed8729f",
+ .fail = true,
+ ],
+ [
+ .count = 14,
+ .key = "0ffc47ae5991e8b232d8abea0c323033",
+ .iv = "5e5099b86e4c984072008bd4",
+ .ct = "ef3f1e9e81d1708edf657938d76ca394",
+ .aad = "92879fd84b5c627c67e2ac484f7bee6669272e9c",
+ .tag = "cde1f403eeeedf1f983545cc393feb21",
+ .fail = true,
+ ],
+ ][:]
+ ],
+ [
+ .name="aesgcm-dec-iv96-pt128-aad384-tag128-key128",
+ .keylen=128,
+ .ivlen=96,
+ .ptlen=128,
+ .aadlen=384,
+ .taglen=128,
+ .cases=[
+ [
+ .count = 0,
+ .key = "527da7a4f81d6d4f6f395b623aedac3d",
+ .iv = "2acf3f0c64f5ab9282a6f4a9",
+ .ct = "ef47b52ebc6d4cc0dfaf09d22a587c73",
+ .aad = "e5492270c1df154e594c689fc505575c6bf5d7dbde0d1ded5ed32ec65e3e8289072bb10c35e385f499c0600a58f721b2",
+ .tag = "0530cfe49d93d78bfa9d54ffa6d148ae",
+ .fail = true,
+ ],
+ [
+ .count = 1,
+ .key = "a10785641ff210336a96a42001824462",
+ .iv = "906bcc9dcd0fb4caf3c5b691",
+ .ct = "19f30bcdb9f3a4c110e5797c64561c88",
+ .aad = "96d9404d0a24052efec37c8998726fee2db69d755ac87dae6f9d6b505fdc09799de79757f90053bf503f23283fba3084",
+ .tag = "beeec6ae10e9d7f11188c59c46789e45",
+ .fail = true,
+ ],
+ [
+ .count = 2,
+ .key = "abbc49ee0bbe3d81afc2b6b84f70b748",
+ .iv = "f11db9f7b99a59ed59ade66f",
+ .ct = "ce2d76f834942c022044eebc91b461c0",
+ .aad = "d533cf7644a48da46fcdec47ae5c77b9b52db775d6c886896e4f4e00c51affd59499a0e572f324989df511c4ea5f93cd",
+ .tag = "62df4b04f219554cd3e69d3c870032d2",
+ .pt = "5135ba1354cbb80478ecaf3db38a443f",
+ ],
+ [
+ .count = 3,
+ .key = "bc34611aea26c47b028eda43936fbd1f",
+ .iv = "68628129aa2fb6ba7fa46b83",
+ .ct = "738d5b0edbbdea4085174c168c11e955",
+ .aad = "6982a727ab5e75c089467b0c9d909d6da2dddaceb3b042aa9b12c1f8d7be7fab63af0e1f457fde6cfea04f4a6df6936f",
+ .tag = "bc0464a8f0f146546b16318dbad4a4ad",
+ .pt = "b358a0151f05ba85d65ac3698e674d28",
+ ],
+ [
+ .count = 4,
+ .key = "86613911634393460d581276f2fe82c9",
+ .iv = "6433b2a1e47552414cf60e84",
+ .ct = "50c7ba11891c8b40ba74c663df54ec7b",
+ .aad = "df81e6b7ed9c4d8dec1accd93cd7f3d9538f3355202c5a545ab548950c5b4598430fc7d88e28241bc04cb00fc50418da",
+ .tag = "b7558e17cc7b5b1f6bfcce7f7ec6c16f",
+ .fail = true,
+ ],
+ [
+ .count = 5,
+ .key = "7fc3f870c3f32a55c912c4b713269dd7",
+ .iv = "828d1d61bdbefed2bcd65905",
+ .ct = "d1422903671ac453cf42322cd3341e9c",
+ .aad = "378466552eac129bf147d64db0ecb3717c1add1ad76b416602cacb728c05af70769d00f32bdbbe7d54e950138d969a7a",
+ .tag = "cb53f3828dfba1f387254f50d9a69380",
+ .pt = "80d99a194aaa8db085394591791f5481",
+ ],
+ [
+ .count = 6,
+ .key = "fb83253786e83ddcdb8ebf89fb37fb32",
+ .iv = "67454a1324f451e0c50eb805",
+ .ct = "bf9c0a175cc510b1e474f5cddd923f68",
+ .aad = "45a84eda3e45dd89d7a2f31ad9982dec9bb59fe7376382f6dfab8c9e8f5fd7a18663170af4557693e3108d51c14f6f9a",
+ .tag = "92f65fae9301fa983a8149e9eed72b25",
+ .fail = true,
+ ],
+ [
+ .count = 7,
+ .key = "b5291e834f899b3b22a8b77fd5a26642",
+ .iv = "93fa2101e7b13b9e3ae3c248",
+ .ct = "559c48cd0d213296381df40b961de268",
+ .aad = "8c09c1883ad1957fe7615ad0a465631a78e0a4059680a41c40a542ab94b0f246b3210122e7e6b1088a6067ab0ab39ce8",
+ .tag = "4b3a4d91ed785fd52836b023b11a8e0c",
+ .pt = "052ca393b0230b4b1ea06eedb3048546",
+ ],
+ [
+ .count = 8,
+ .key = "c6d138d93b2106db7e62d67b25910586",
+ .iv = "1290dca4047cd031f80afe5c",
+ .ct = "488f108ceac7dd6d9b653e5b700b96f0",
+ .aad = "0434f074ec1cf2b6cd958912ef1e58a7384ad47b4ed6852216954803d4b0eee42848ec28ed1fdef5b99f4a32f0081b15",
+ .tag = "a83bf6bf0198799fde67d4725406d7be",
+ .fail = true,
+ ],
+ [
+ .count = 9,
+ .key = "5f9c25ef23f1b8cc6d114665095ce500",
+ .iv = "a73c0171a14a5c4879dd8692",
+ .ct = "213957e8aa7ec598e27a955b0b26d1b7",
+ .aad = "6ca8ecae42fd2fee8b285bc2836a1ec51bbbe03d83e20dbe0267983632e512846491e2e501419964c4e7eb9213ae5c44",
+ .tag = "c781ca5e18b8ad91c30af636bfdd5a89",
+ .fail = true,
+ ],
+ [
+ .count = 10,
+ .key = "a954403e7f5e6116b803fcf61b69fd78",
+ .iv = "36438c3f50c7835800103d64",
+ .ct = "09fb8dadf2aabf5a1eedfe1c7d585f4c",
+ .aad = "2c01e76a3a8d86d199eac169560fde8680f4b14f45e76c0b26581bffef595fff1250051c972eed702eb3b58f5ea7cdb6",
+ .tag = "a014ac75c80738e3b95fa6a4334d3126",
+ .fail = true,
+ ],
+ [
+ .count = 11,
+ .key = "229543caa39b8e2647703a09b082be4f",
+ .iv = "b40f328dcdfb4f94214298cf",
+ .ct = "eab31b64d8fe898481fcc743f56b6f9d",
+ .aad = "e84c355a609b9c190766dfc68e3dcd8377d85132c0e2f607ec06960a5e73972e25ff84a4f3e63ad4c946fb8c0d08da7e",
+ .tag = "6dfe7f81209b1f059aafd8f36e929388",
+ .pt = "6423fd59407650c305d92ecaa3dbc84e",
+ ],
+ [
+ .count = 12,
+ .key = "1eb5022fa84cb4ff4354c4282ff205c0",
+ .iv = "6334cc3d0b4ee7e575cd90c8",
+ .ct = "436ba45e2bfd1119485d68f6d96b9c77",
+ .aad = "d2caa4cbae3e26277c5ae361aa76a5c465845997acc37e6a3a1a09ab99342e698b6dd09bf5465adad1d54904bdcb4e77",
+ .tag = "16cb48152bc8778b4bbc9cf18e27908b",
+ .fail = true,
+ ],
+ [
+ .count = 13,
+ .key = "5962ce9c4a12c457e5a2165639f93fbe",
+ .iv = "c5cb3a2a1f4bbf7b64bfb211",
+ .ct = "3a16961039ed49d930277c323d9d8be3",
+ .aad = "ac9f9916f0b24b78de67f70446bdc85cb122f40e133fc5a30fee77539929009f2f97dcf5e5af0528f5378747d2c5cff6",
+ .tag = "9e6b8ecfb015309088b1375cde530608",
+ .pt = "49f3ab3a9fc7b4283cea9abeb9edcc07",
+ ],
+ [
+ .count = 14,
+ .key = "745eb79bec8d94f90ed9e580067c9452",
+ .iv = "ea47877e5e6730dff90821a7",
+ .ct = "90f1885812b17d7991c8053b003cfb47",
+ .aad = "68bcc1c94d821b864c2effd8ae24e2201dafeef48c15d82a5afb830e220e4740eaebf6f03c562a564c2521191ed84461",
+ .tag = "dde6f55bbb9de66223027a61ba050e2d",
+ .fail = true,
+ ],
+ ][:]
+ ],
+ [
+ .name="aesgcm-dec-iv96-pt128-aad720-tag128-key128",
+ .keylen=128,
+ .ivlen=96,
+ .ptlen=128,
+ .aadlen=720,
+ .taglen=128,
+ .cases=[
+ [
+ .count = 0,
+ .key = "99a9bddbb68be243759bc01c882c4ce7",
+ .iv = "6d78e303d165a42082abf5a2",
+ .ct = "1e3a3fdb540717afe12651d3a51b4340",
+ .aad = "80a8d9fdefb4b114f12208b0a79299ab5e2c8524d2991617f29b23b31cedef24226fadc72b3475c0f201ea0648aa4936ffff9c80f08a329e042cc23728e0b1569357bfd08e9af1b77369bce491b995f7393903c3eceb3fe0c0e4",
+ .tag = "66dbb3bd4b766df31d37a0282876276c",
+ .fail = true,
+ ],
+ [
+ .count = 1,
+ .key = "300b8ffab4368cc90f6d4063e4279f2a",
+ .iv = "8e69fa64e871d0e98a183a49",
+ .ct = "2d2292da61c280aff86767d25b75e814",
+ .aad = "5166309e153447b27c67051453abf441de3f4a7f6b633ec6122ff82dc132cfb422d36c5ec6e7cc90a9ad55caa1ccdcb82dc5022a20062a9c6e9238f34d085b1f554b5eac05eff25b5a5cb6e18e7827d70175dc0662d77033d118",
+ .tag = "633ee657a8981a7682f87505594c95ad",
+ .pt = "4953b54859870631e818da71fc69c981",
+ ],
+ [
+ .count = 2,
+ .key = "5061b1c9af824d400a4097353c8b324d",
+ .iv = "f9c6575be814e22ec28bc6db",
+ .ct = "b1d0976677a3e53777223dae0e65fc7e",
+ .aad = "325408a19d85c17ab70b827a72259f13e45ca7173c392fbc985ed5d30a20fc19d231e1992e1db2c0608db234b7ae87922028226ae66e8fa467f2c2a8e9118139178855bbab89fd6b36c6a1d2e4ef87c65e2d5d80877ae2e31190",
+ .tag = "ca672705ab5a9c257eb79129efa9b3cd",
+ .fail = true,
+ ],
+ [
+ .count = 3,
+ .key = "d27f5053e12dde30561119ad2b9b13be",
+ .iv = "5437231a59ac76b2948c48ff",
+ .ct = "055835c290211a17f56e019c00082a06",
+ .aad = "da5aad950ec6c7ea6711202256c45590290d0ac427a5121d5cea6e0500dd88098d40b8616bb63a1afb9d3e8e327066b5dbd2ca59c349ba8ebb7bcfe658dcf87e2f74141a786785c41eb1a54118a422e9b9f43a65939f53f6fced",
+ .tag = "fe5e67e5433c57eb12773f473e1e2a0a",
+ .pt = "07a4b1a3c359dcbb38aa8b81cad572b8",
+ ],
+ [
+ .count = 4,
+ .key = "2ecdf75ea95d3ec8fc527bb831b1aff0",
+ .iv = "17b48a715b5e244908950f1a",
+ .ct = "1df681b55e805d2060ab0dee8093153a",
+ .aad = "f503d5558f826641c23879c53e1f72cd08d069abe54cb145b592eac8e3014d39178d065f41fbe65047b8501d1b32ad4dea151a152e3166527a6ee81fe7806b52653a00a0296fecd52423bd9e06702aa313e698c7608b24b91dbf",
+ .tag = "67efe1258c07e64d2ed355c0785c7f37",
+ .pt = "549ea7cb568dec75bab8edbbe0cc94e9",
+ ],
+ [
+ .count = 5,
+ .key = "d86f80508cf9d7c0d66de0ddf68a3816",
+ .iv = "d29ed7cbedb74089f264a6a8",
+ .ct = "a764d4398db219f81ce066a02f39c61d",
+ .aad = "dd9bce3863b224b22c1b764d24b68f6b8ee15a1a03e3d93cda018af8c548625c21388e11ba974125d85e8d52aeefd4cdd3d91a2fec552242f73d41fe03f8491fae9fdc30f0b042bdde65f2833b58264d493c5bbf8e2e15fa8b82",
+ .tag = "64671a12b392c68c5ab638e0bb7e29f4",
+ .fail = true,
+ ],
+ [
+ .count = 6,
+ .key = "7fa90797f1b6a3e6f121fd5c003270e9",
+ .iv = "c7ec4cf096ed56e88a0ee79d",
+ .ct = "18f728db6848bdbc6fd8043bcd13738a",
+ .aad = "5764cabe5e95be9600fd1bf9c89e9a3901f621b901c90e34ee4b8c90701aa87065b2beb91ccad38766c31306192bce55ea6b90f1b8373688bf8770b5a6750ab49fa9d2beb3c8958ec2578dcbdd4a0a31b40f74a090c10654350f",
+ .tag = "e9328ffb6b84a0dd6576b1f2563a6387",
+ .fail = true,
+ ],
+ [
+ .count = 7,
+ .key = "43353c434b11cccd96fbd61dc26575e7",
+ .iv = "407b85a0701da0c3754cf779",
+ .ct = "32bd678f91351a83103bd65a1c4449c1",
+ .aad = "6e205d8c476b8e6d780819212f32203829da927734188702dff7b0673bb11c96300e2bb5f30951536332859ba7c72bf7669cb8ad27882b75832379aeebb701890aba3253c68a0e3fc99373a2ed2fa3276e829e87c86dc4f579e5",
+ .tag = "a53265e07a9355584369fa4903144014",
+ .pt = "de9e002f12acc9e65356eb461a7a037d",
+ ],
+ [
+ .count = 8,
+ .key = "c2fe55b921f04d9da55341393033cfcb",
+ .iv = "ec1dc287bb6f927b1e2c3cc4",
+ .ct = "16efd99e3918f14116985d6afbea0f52",
+ .aad = "7d0e03aa029f663f9a9d38fe784f812310c70ad34af96fb65d54e5bd92ddc9259233cd86ffdfe14e1a6dd37457b4bc6fb3df8a7fa60e010bc3b8f7a80cdf050b94640cb85b83b9c40569bb1e37d47d1441326eff48679e12e1c7",
+ .tag = "84b2e87e046bc2c4e6dd32e256a19d62",
+ .pt = "294be56c1aa5176df99b282bba8200cc",
+ ],
+ [
+ .count = 9,
+ .key = "0268a73a952aa0f177d29fbc52d477c6",
+ .iv = "4d0e4f4160f37b5c172311e2",
+ .ct = "7c399a61f0baa70f0e9a2bae4e2e7610",
+ .aad = "b6c4dc8df3529c453131b85dfc7bf4473fce580d070b7750bd3cbdb51f1b65117b6adb2a57ca925601144293b25b6e6c10c55e51674e197beeba05e65a7fb9bdfae760aa14ae69d07baa0d63e25f4d06e446887a5daa71ead3fd",
+ .tag = "397911c6f3197a19ef663cfad139fc79",
+ .pt = "987ae53894a4fb80ee995c3b9ae1097b",
+ ],
+ [
+ .count = 10,
+ .key = "f3ef2c78b5d5072d75b8bc638019fbd9",
+ .iv = "e744adc2c686c5072353a9e6",
+ .ct = "2d650d6f221e31e8d981c3c3f8d74657",
+ .aad = "7a78c5b7444a1502383666c0ea0c596246e7e98148178a2ad0f20798ead8b66317a97b8576a6edfcf33ade393474d00f00516fe7fcfb5facd02cbb8161b224e994bde9fc17d60490fe1dfef97bda8aaf563cdcd0d4ec270c63a6",
+ .tag = "33469c4d2358f9afe5ce066670ed8037",
+ .fail = true,
+ ],
+ [
+ .count = 11,
+ .key = "5801f1d0c63b9414c73aefc971a59616",
+ .iv = "391f171f76b85919200ecbb8",
+ .ct = "6ddc6d402a0ba52f5f274ab90231336a",
+ .aad = "9560b3d1f0b5de34b12fbe35bc1ac73ec7f666d58545b088740eb2720b3ac16cccc729307032ef3d465094024dc6c8e87b979b0c69102a857d1385a655ed47c768446b350020a7a11bca17d120295c89c566f712d96093f57852",
+ .tag = "26d6dbf8ba796693bad2b28e5c10f45a",
+ .fail = true,
+ ],
+ [
+ .count = 12,
+ .key = "2eca32ca4445bbdff452b9f148475556",
+ .iv = "bafa872e73e398bd13684342",
+ .ct = "8507c5f9db2b5ccc3511ff7c536e4fb1",
+ .aad = "699cdb33c82d8d479986f92c7e09fcadedd0bb16a6714a12ddbc23787a0a6bd9a26b4459dc910270d0bd5f2174c9428b8657eea47c866b5202170e09c644b0bd1a2571b95ff27eca9111d1e732a235aa9207906de127d339a353",
+ .tag = "45780dd1107458714eecabfb2fbaddb7",
+ .fail = true,
+ ],
+ [
+ .count = 13,
+ .key = "947b7af80ee22df81650b15ca3a9d30e",
+ .iv = "b08d719c82d666afbb5319fc",
+ .ct = "3c0e648800b873a6d313df9819d69c88",
+ .aad = "14cd58d6304d89fc3aec5bb6736c4e9ef02db97969bc169a4f8c88c36adfd3a9b24da276533fb90c3930feb8b972b0e2eae2c80714536b6b68f3d2ea3328a359dbc1eae607eeb832ac7134d488712610ce4290bb03bdd12f48a2",
+ .tag = "52a69091a51a33e59b0bfd45a89f0a2c",
+ .pt = "97abeb8f5a115d2a978a31ffd3ab87bf",
+ ],
+ [
+ .count = 14,
+ .key = "08d287011268b575c5e0117bb02eaa4a",
+ .iv = "1bdfc9f621afe6d47ca6a82e",
+ .ct = "952e3bec22baef1417bb32ff7217b509",
+ .aad = "e33c9f5b0bc4f32f7f56b517c7aacc23451ba85bf10a70da5ed25765fc87add73cd29a7eb0cacb64e88142aafa5835cf161b9d3c6fd7cc9d91feb7d937e06acfc5d4c49e8ad617e5667a9b62aad09b492df9c66dad1136c341cf",
+ .tag = "11e971c6f777ebcd738a541081d7559a",
+ .pt = "571b35d67615967d9d08858722fb1b8a",
+ ],
+ ][:]
+ ],
+ [
+ .name="aesgcm-dec-iv96-pt104-aad0-tag128-key128",
+ .keylen=128,
+ .ivlen=96,
+ .ptlen=104,
+ .aadlen=0,
+ .taglen=128,
+ .cases=[
+ [
+ .count = 0,
+ .key = "387218b246c1a8257748b56980e50c94",
+ .iv = "dd7e014198672be39f95b69d",
+ .ct = "cdba9e73eaf3d38eceb2b04a8d",
+ .aad = "",
+ .tag = "ecf90f4a47c9c626d6fb2c765d201556",
+ .pt = "48f5b426baca03064554cc2b30",
+ ],
+ [
+ .count = 1,
+ .key = "294de463721e359863887c820524b3d4",
+ .iv = "3338b35c9d57a5d28190e8c9",
+ .ct = "2f46634e74b8e4c89812ac83b9",
+ .aad = "",
+ .tag = "dabd506764e68b82a7e720aa18da0abe",
+ .pt = "46a2e55c8e264df211bd112685",
+ ],
+ [
+ .count = 2,
+ .key = "28ead7fd2179e0d12aa6d5d88c58c2dc",
+ .iv = "5055347f18b4d5add0ae5c41",
+ .ct = "142d8210c3fb84774cdbd0447a",
+ .aad = "",
+ .tag = "5fd321d9cdb01952dc85f034736c2a7d",
+ .pt = "3b95b981086ee73cc4d0cc1422",
+ ],
+ [
+ .count = 3,
+ .key = "7d7b6c988137b8d470c57bf674a09c87",
+ .iv = "9edf2aa970d016ac962e1fd8",
+ .ct = "a85b66c3cb5eab91d5bdc8bc0e",
+ .aad = "",
+ .tag = "dc054efc01f3afd21d9c2484819f569a",
+ .fail = true,
+ ],
+ [
+ .count = 4,
+ .key = "1694029fc6c85dad8709fd4568ebf99c",
+ .iv = "d2c27040b28a9c31af6dad0a",
+ .ct = "e17df7ed1b0c36c6bab1c21dc1",
+ .aad = "",
+ .tag = "08644413f80753a66d27cc37d9903abf",
+ .pt = "51756d23ab2b2c4d4609e3133a",
+ ],
+ [
+ .count = 5,
+ .key = "e46eb11faa5c3f6e37ee510544514409",
+ .iv = "31ece7b92df31eb13783b23e",
+ .ct = "bf77690a555c368878f5929e39",
+ .aad = "",
+ .tag = "971a1f31d5838d444f329ff47bdae20d",
+ .fail = true,
+ ],
+ [
+ .count = 6,
+ .key = "678840abd719f5588e103a9ce1895670",
+ .iv = "2247ca0bfb937d7091c49940",
+ .ct = "f5f7190e3b85aea4faa57b52e8",
+ .aad = "",
+ .tag = "b4d15142a68ab5258c3d20621f4706ea",
+ .pt = "b4263d709f816288ece00bbfae",
+ ],
+ [
+ .count = 7,
+ .key = "8dcd045f5685cf072f1a9571fd933cf1",
+ .iv = "500ba0a66f3b919b0cc43d5d",
+ .ct = "38ec62147b601d1b84e628c60e",
+ .aad = "",
+ .tag = "d5a8456335aacb0db452f4c460edefa6",
+ .fail = true,
+ ],
+ [
+ .count = 8,
+ .key = "ab42c0bb775a58e0c5aa81b2dc3e220d",
+ .iv = "4cd9049e3b3f48c848a21b3c",
+ .ct = "344df70485c8ac2fdcf69190f3",
+ .aad = "",
+ .tag = "4cdb58ad32123be431ef50613c9f886f",
+ .pt = "9fa3afe7d21dfe004b558ff940",
+ ],
+ [
+ .count = 9,
+ .key = "4e3e7322fe0baeaeca2afa6f10fc09a7",
+ .iv = "8a9ea19485204cb1c671818b",
+ .ct = "66881a96b2c0e9c81d3270e285",
+ .aad = "",
+ .tag = "8b4b35abb0d8a498b75920adcf411ea8",
+ .fail = true,
+ ],
+ [
+ .count = 10,
+ .key = "c63119ae857dbac28e1f9d254589c258",
+ .iv = "4696e3963d8105483849c132",
+ .ct = "fb3b925ac70ee8fcc653344cfc",
+ .aad = "",
+ .tag = "964a03393b541319996dfb9db8259d48",
+ .fail = true,
+ ],
+ [
+ .count = 11,
+ .key = "03c6071bd6363596161f34a039567fbb",
+ .iv = "b6b6213e219034d5e1a86f65",
+ .ct = "9234874c82e77eb464abebcfce",
+ .aad = "",
+ .tag = "5e1513c241485b5d6dc0d4c852f9d39d",
+ .fail = true,
+ ],
+ [
+ .count = 12,
+ .key = "1ff11c32fc837d9f2d0809ab65b530e0",
+ .iv = "f4cb53c43d206349b0333ea8",
+ .ct = "4aa200287cd30147c3fc6f87e0",
+ .aad = "",
+ .tag = "2f12e3827848b21f141e5a9a0919e6b0",
+ .fail = true,
+ ],
+ [
+ .count = 13,
+ .key = "3de290481b59cdc48d328cb3ac39cd96",
+ .iv = "d1792633ed4d573a16b63feb",
+ .ct = "0bdc54d226fcd3c5a9b03fa960",
+ .aad = "",
+ .tag = "1a68657749ea7adb860f87b915e58659",
+ .pt = "116d9d634bf9e746db89aab0c6",
+ ],
+ [
+ .count = 14,
+ .key = "61858ec104419274ee0e24871cdff474",
+ .iv = "257de891935cc301aff3824a",
+ .ct = "918b9f4a5f59d5a9325d994c16",
+ .aad = "",
+ .tag = "0dd768a4f8d0252e943c9d6cc9e28664",
+ .fail = true,
+ ],
+ ][:]
+ ],
+ [
+ .name="aesgcm-dec-iv96-pt104-aad128-tag128-key128",
+ .keylen=128,
+ .ivlen=96,
+ .ptlen=104,
+ .aadlen=128,
+ .taglen=128,
+ .cases=[
+ [
+ .count = 0,
+ .key = "660eb76f3d8b6ec54e01b8a36263124b",
+ .iv = "3d8cf16e262880ddfe0c86eb",
+ .ct = "b1ee05f1415a61d7637e97c5f3",
+ .aad = "8560b10c011a1d4190eb46a3692daa17",
+ .tag = "761cb84a963e1db1a4ab2c5f904c09db",
+ .pt = "2efbaedfec3cfe4ac32f201fa5",
+ ],
+ [
+ .count = 1,
+ .key = "2aa3dfcef68c333d0f03cbbb60a2dac8",
+ .iv = "667a61d732780f5694128daf",
+ .ct = "9fade7c433cb44d5ebec14095d",
+ .aad = "227f0dddc71aa2cc20c901fcb8db0e15",
+ .tag = "85f30c02962900f8891a9b6987172256",
+ .fail = true,
+ ],
+ [
+ .count = 2,
+ .key = "e8f077635e558cc41a435d5d364e61c7",
+ .iv = "98c0d229fe5e8b2ddee347f9",
+ .ct = "435a85887ef52372259cd7235d",
+ .aad = "473a81d1517f963c9d207b92a37ceecd",
+ .tag = "74c7f8c7075a334c01c6c2084289f6de",
+ .pt = "4dc63e19811baff628f24c1627",
+ ],
+ [
+ .count = 3,
+ .key = "295eecd883ba179e13336c75b0da31cc",
+ .iv = "0491d91c05bb855ae8218b31",
+ .ct = "2c6e3497d217fcb9854e8db4a0",
+ .aad = "fef3a54930a41bd68178515f447e6cbd",
+ .tag = "f58b48f4578dcd69caae8ecb60743d05",
+ .pt = "a506ed7636902fc2c74a5ea53a",
+ ],
+ [
+ .count = 4,
+ .key = "53e2b200f322383f8c4f66e1f33582c4",
+ .iv = "74651a12fb87d4159cad0176",
+ .ct = "fd3e45cc7c27808e81519ac1db",
+ .aad = "62cf41c5adf2cfa83d955cc610448f86",
+ .tag = "e0eab2047eaf4efa600a4082552a4a39",
+ .pt = "a7f37fb6f57464dbf469ff7840",
+ ],
+ [
+ .count = 5,
+ .key = "3abcdd36dd0b65bae484cb7654efbd1b",
+ .iv = "a051edbee68546a493999904",
+ .ct = "9ecf73e3140adf2b7d17eaaec6",
+ .aad = "0ce7963d31c11fbcbbcfc2f6bfa90b68",
+ .tag = "71b8ba81028215dc8f3de37b034bbaf8",
+ .fail = true,
+ ],
+ [
+ .count = 6,
+ .key = "82f67ccc7e7ff0734f61bbc1a3fb0b72",
+ .iv = "7ed71d35a94a9a8f7d1c0deb",
+ .ct = "88fc46298c64dfcfdb5ea172ad",
+ .aad = "d11cfe752b544b5e86cd40739783a25d",
+ .tag = "28a573b0acb4c6befd3eb761dcf41c8e",
+ .pt = "254dd9845aabf9c049cce9ee68",
+ ],
+ [
+ .count = 7,
+ .key = "ad38e96dcb23e04de04b9c28fb4b8e33",
+ .iv = "c4646fa77cb05843dd33b549",
+ .ct = "eb1d781d8eba29f254d2d4b747",
+ .aad = "151bf8dee8e89f94dbcd210626c0c4ff",
+ .tag = "f080a110a2c28706bf8705788e647743",
+ .fail = true,
+ ],
+ [
+ .count = 8,
+ .key = "e8d3bbd86c3825692761e507674ca8ab",
+ .iv = "dae0eed624e1b4840206ecab",
+ .ct = "5f43e50829be1f6c1db21768dd",
+ .aad = "c5069684d531b4bf159f0d2800cb970c",
+ .tag = "bfa9cc78ad67d1bb8c58b8c27ed79439",
+ .pt = "104bc5cd1f4c0bd0b1d7c60f0f",
+ ],
+ [
+ .count = 9,
+ .key = "8dc2982890e5015b008508178e60805b",
+ .iv = "190f64a03e93a35be00f2c8b",
+ .ct = "624bbbdb5fc182ec68a7536c7a",
+ .aad = "d23828f4e380386dbe64117733496c27",
+ .tag = "cf001db85c6318b346b27965f74b588e",
+ .pt = "690d473959e2bb9ee135098ad2",
+ ],
+ [
+ .count = 10,
+ .key = "6270f8d879f483c8da47c7a1ac841069",
+ .iv = "bf241ebbb53da9266feb80ec",
+ .ct = "4af8df0b28f8169d4ebdfd87af",
+ .aad = "753738f9f9abe9e09d95e9094df917b7",
+ .tag = "cfaf36396156d570a2d16d5d9309a20c",
+ .fail = true,
+ ],
+ [
+ .count = 11,
+ .key = "41a7e25635ef6d9f41d5e47134224db9",
+ .iv = "06196d4aca076d87307d25fa",
+ .ct = "8019af5fc9a6139dd70c3ce530",
+ .aad = "fa9bc9d9f62c0b6ebaa9a78ae877f10d",
+ .tag = "22c816aeaa81b29bbac65a7977fbeabb",
+ .fail = true,
+ ],
+ [
+ .count = 12,
+ .key = "ce4a52d8d9b7ea1a6b0582d515a76ef0",
+ .iv = "9b917ed9844bf241e8e342ff",
+ .ct = "4c2787d382182ce0984ad73f75",
+ .aad = "fd6de547fee72ad03c937dce02c1965f",
+ .tag = "853a648db898f922295ec78e6d26193f",
+ .fail = true,
+ ],
+ [
+ .count = 13,
+ .key = "6bdd0f5fac673ed0e5035704e0b81859",
+ .iv = "89bc74857b39b5b3b6e119a3",
+ .ct = "7285eb5e7380e62e8db412f141",
+ .aad = "c76b9c59f5cc4d02c35c4e3250bf2a6c",
+ .tag = "5d92968cb34561ef8bc81b6aafbd3ac3",
+ .fail = true,
+ ],
+ [
+ .count = 14,
+ .key = "b69ee30195aff4034d692b619d000408",
+ .iv = "8b509ffd89c70c5d74dc975d",
+ .ct = "b011b1a89b8309c084660dc77d",
+ .aad = "886aea7c2d67c0c64038bbbe93a3534f",
+ .tag = "4b12ec1f7943ffff88f1e64ee090d781",
+ .pt = "8d511f8e02961544754f36e937",
+ ],
+ ][:]
+ ],
+ [
+ .name="aesgcm-dec-iv96-pt104-aad160-tag128-key128",
+ .keylen=128,
+ .ivlen=96,
+ .ptlen=104,
+ .aadlen=160,
+ .taglen=128,
+ .cases=[
+ [
+ .count = 0,
+ .key = "c62dc36b9230e739179f3c58e7270ff9",
+ .iv = "196a0572d8ff2fbd3522b6a5",
+ .ct = "958062b331f05b3acaa1836fc2",
+ .aad = "4d10536cbdbd6f1d38b2bd10ab8c1c29ae68138e",
+ .tag = "dc65a20d9a9aec2e7699eaead47afb42",
+ .pt = "6d8abcee45667e7a9443896cbf",
+ ],
+ [
+ .count = 1,
+ .key = "0c966ae197bd94cdabcab5f9c4da02cb",
+ .iv = "c5bcc7e7044169fa01519ab7",
+ .ct = "49c9a9b0c3980e443cd5195a16",
+ .aad = "5feaf91a64887463a0b3299da6c87cf2874ebf0b",
+ .tag = "9843f2181d3db30d1c7694c511a85440",
+ .fail = true,
+ ],
+ [
+ .count = 2,
+ .key = "913d0833618d0cac6cf1aa7879ff71df",
+ .iv = "64082c05f8f3661d0909c5b0",
+ .ct = "b4f1efce82f907c0fcc1ba0777",
+ .aad = "429e3b1b13f9772e9c77a1a4af3d42e8e0e4d86a",
+ .tag = "452b7b777968c18128ade293fd7ca3cd",
+ .pt = "8c4c5d3af3ec87bdf8021bf01b",
+ ],
+ [
+ .count = 3,
+ .key = "32c251cf7948c7da54a89c109cd10efc",
+ .iv = "a12c50265a0f59f0d796185f",
+ .ct = "66f5786452f19af24a80ce87dc",
+ .aad = "28d5ece6295b14a98f3d67fa3b7153791f4e34bf",
+ .tag = "cb176553e01e5991d5dcb6796c33336c",
+ .fail = true,
+ ],
+ [
+ .count = 4,
+ .key = "977b05392cb87f18f8da6c6273846e84",
+ .iv = "3d75233ecc9431a09605494f",
+ .ct = "67897c7de75d0a877545fac9ff",
+ .aad = "803b6b7a7c15f5c9cc1de5166d68c53aef7697a9",
+ .tag = "3abd3c4653fccc758116beb653809a2e",
+ .fail = true,
+ ],
+ [
+ .count = 5,
+ .key = "8bfca06dbb9be36fc52406628ce79afd",
+ .iv = "faedb8fb599ecb05843c783c",
+ .ct = "755ceee1b887595011a848b3fe",
+ .aad = "63bb624283314d67d9dfac0a01257f41dffdfebd",
+ .tag = "8d22fcc810d50af86131d571aeab6c27",
+ .fail = true,
+ ],
+ [
+ .count = 6,
+ .key = "ea55ab4c4a6e8dc4ecca42d4874cacc4",
+ .iv = "f5c77f9fb2c33639f35d8f0d",
+ .ct = "a153dd682c7170a5757d3f0e5c",
+ .aad = "37138bcc4cae4d9327ee8d7c533c2b3dcdd4232d",
+ .tag = "0617b3f0b8f69365ac5c6eb8b3a0dbf6",
+ .fail = true,
+ ],
+ [
+ .count = 7,
+ .key = "9b0339dfc4843a419872a285254cdf86",
+ .iv = "9173bb06344a171f7a045ca9",
+ .ct = "d1ee33e7dfa59bf1d684894a39",
+ .aad = "b9626d0970d0a5902a3f7a5c7b43e875dcc50835",
+ .tag = "fd7ccf008845d5ddf164e109ccb4e5be",
+ .fail = true,
+ ],
+ [
+ .count = 8,
+ .key = "b8ee3c155ccbb0f3887634fe96e2a1d5",
+ .iv = "d8b44efb1a3332501ee6afdd",
+ .ct = "a5607fd03c0742fa7abae960ab",
+ .aad = "151653716d50a72423ba17957b8ad24c7c4db5e6",
+ .tag = "baeb1468e24c252684c14142b519be3f",
+ .pt = "e390151ab9d399d534e0119767",
+ ],
+ [
+ .count = 9,
+ .key = "710218a79797b3cff3a20e9a60810475",
+ .iv = "f51da8e5a361aad6087af342",
+ .ct = "e55e14ff01fdd224fa809229ac",
+ .aad = "455a908aec7d7ad9d644b5305d138b78258c2c8e",
+ .tag = "7040bfcfa78be2bc0a624ba06cc562a2",
+ .pt = "de233903ba85973c9cdb15ad40",
+ ],
+ [
+ .count = 10,
+ .key = "bf9a6f66977ab3a8d37b32e1f24111fe",
+ .iv = "5b9779c050a41b6f4053233d",
+ .ct = "27b30f458daccd4481408a3f5a",
+ .aad = "9561c95310b0f882e0f7c2967d04ae9444e5794e",
+ .tag = "9f5f1a41c4fa3e551330c5d91db4fa54",
+ .fail = true,
+ ],
+ [
+ .count = 11,
+ .key = "abf42662668c5b8d5604a8fe6d73a2c3",
+ .iv = "d4d68ce645b95ea61addbd0e",
+ .ct = "29c718ab498e792ac1bb8c7c2f",
+ .aad = "6362394c4e9acd3c9888d3c93f39a29dd02078db",
+ .tag = "2b416d7723aee1935233c04ed2fea876",
+ .fail = true,
+ ],
+ [
+ .count = 12,
+ .key = "b9eddaba6602cc32f33782b18e2aecd0",
+ .iv = "86eef884baa60ed42b086eed",
+ .ct = "e3a735e097fe667708996ff18f",
+ .aad = "b877b290962dd14bd1d622b975eed04113ed105b",
+ .tag = "54395a31d93ea9625d644be8013d018b",
+ .fail = true,
+ ],
+ [
+ .count = 13,
+ .key = "4598e0e4821db7dd6ed2ce09cdee6cdf",
+ .iv = "8e89130fbe0d9b66d5742aba",
+ .ct = "9edd822968b68f2173188ae6b7",
+ .aad = "04c1089bb4abb82ab55ea18eb2ad2fd5bca1a086",
+ .tag = "7c34c3941fbf51bd33e339b6390babc5",
+ .fail = true,
+ ],
+ [
+ .count = 14,
+ .key = "47e0fb871a560d92949d84f557ef2247",
+ .iv = "dc65e2cdbeb6601dfd684fee",
+ .ct = "6e2b2ed107490d306a2b5451f9",
+ .aad = "17a7966987c7ac3bb4e455e69f0e6035e7d0d3be",
+ .tag = "de38af58ff256e130d84edaaeb00d878",
+ .fail = true,
+ ],
+ ][:]
+ ],
+ [
+ .name="aesgcm-dec-iv96-pt104-aad384-tag128-key128",
+ .keylen=128,
+ .ivlen=96,
+ .ptlen=104,
+ .aadlen=384,
+ .taglen=128,
+ .cases=[
+ [
+ .count = 0,
+ .key = "ef1da9dd794219ebf8f717d5a98ab0af",
+ .iv = "3f3983dc63986e33d1b6bffc",
+ .ct = "95ea05701481e915c72446c876",
+ .aad = "5abd0c1c52b687e9a1673b69137895e5025c2bd18cbeacdb9472e918fe1587da558c492cc708d270fd10572eea83d2de",
+ .tag = "5c866992662005ca8886810e278c8ab4",
+ .pt = "5511872905436c7de38e9501e7",
+ ],
+ [
+ .count = 1,
+ .key = "2e3968148b973cb79f275676367cd799",
+ .iv = "b055618bdaf94170080346ae",
+ .ct = "0117a142931082ff569aa58ea1",
+ .aad = "72c50abc8c10b7a83b755ac26b7a86afb37d2310e832a8982c70ea8950f8c1a0c0b01fee79644753f87a553868dcc719",
+ .tag = "db9143f6cdb3aa57c2aab1bab89e6c26",
+ .fail = true,
+ ],
+ [
+ .count = 2,
+ .key = "7dabba053c8c682b65c8ac9059d20793",
+ .iv = "109c8ff05626ed7329a7d68f",
+ .ct = "158b708fdbf206999c6d5dba50",
+ .aad = "041c26f5c77092c475ae6fd6f9c8c3c8c42d40f8bffa4c28c2f40146c1dfaed0313f109b0d918f7d72fb87fd20d7fe96",
+ .tag = "0b4680a9f3b9f745bb87c3620ecdd956",
+ .fail = true,
+ ],
+ [
+ .count = 3,
+ .key = "e03c73bfd5dd3aadba727bb3f99e6237",
+ .iv = "150fbaae76a2da0b84e42959",
+ .ct = "b6b4ab1cea7044abf6f6f7dbfc",
+ .aad = "80d1ce195cf77fc3143a37b8546d2d415241d17ffc1d35fa0613f407f7c7cf4f9fe219fd32eb2a95442f5417bf0f7277",
+ .tag = "03ac1333e300e1845c12f150568ed37f",
+ .fail = true,
+ ],
+ [
+ .count = 4,
+ .key = "01534e2afc3d9ccc30b826ba91bb8f4f",
+ .iv = "6caaaf9daa38e571537ad189",
+ .ct = "1ad10d1f8aaf7c540755b26bf8",
+ .aad = "1dd85b293539f175f51d1eea58ec78b813b16933d3ebe883cae4340bdaa52a93504c43185bb12a82a93309f04b3fea2c",
+ .tag = "d92c12bcfd2dfb213537c796a37eb631",
+ .fail = true,
+ ],
+ [
+ .count = 5,
+ .key = "1cf382d72ce0cde089348ec997d7cb4e",
+ .iv = "a6db73904471cb27d6ea87bc",
+ .ct = "69bcb6c8e85d70cfb6b9138a19",
+ .aad = "98fd3d310e72bbf08837b1f498de66a55f2cba0c6083f335751e59547151802e3e7dc41e1149362c2a938e10bab13a0f",
+ .tag = "770c7c19ef48baa7f2c7a8528558465e",
+ .fail = true,
+ ],
+ [
+ .count = 6,
+ .key = "2eb413374f602f6598ed463a102fb1f3",
+ .iv = "c115adfba0d9edc7d6ca92a8",
+ .ct = "f1d5ff51c84b884351038a6722",
+ .aad = "db3206a7eaed7c7b1f17ba5c18fbec7e92ab259a237473f7a7242d1825fd49f167d7f838c1eb65e99b5eafa9c8c11d2a",
+ .tag = "d3a3f5e0659898b30e27720ed3e63e56",
+ .fail = true,
+ ],
+ [
+ .count = 7,
+ .key = "284b0739877c18921007c888b283f9f7",
+ .iv = "6ae3a281a95760fee1c2a07c",
+ .ct = "5d76f5fa13c2f6d638145a029b",
+ .aad = "771307fe6809cd1f5380e5e19299c5dd86d36a6f664e2226b1a42666374e154957035a538b311d73eaebcfe504cba2d8",
+ .tag = "6327aa1b885337285bc1f6367136b028",
+ .pt = "8e460f57a808d4ef7d3e2cc4fe",
+ ],
+ [
+ .count = 8,
+ .key = "698634972384bf4338da7a7a78b1dc45",
+ .iv = "e3776042ce8f196d87512ed0",
+ .ct = "75379c28898c4a25c7f8b46b69",
+ .aad = "75ed47a6454f5a46cf06519dd5cab36f5c98845df604abe02eefa96f803bc9e43fb1d163453138f54b815de0ac77247c",
+ .tag = "d63164ca86592eb82c95df8bdac250bf",
+ .fail = true,
+ ],
+ [
+ .count = 9,
+ .key = "0da45731532c21aa9be95c6b97fd88fa",
+ .iv = "fcc4a45c9f30b75ce84b1963",
+ .ct = "00846b8e389b4d51b8be03a9ab",
+ .aad = "cceb765bf43d0059c046334e001b2008083383e8a766def6e00a047d5ba34af9f459b626fe229e91ce44f2d4922053ae",
+ .tag = "e5de395dd1a944c82b1293e2f0a07610",
+ .pt = "648a178a884cb9dcace3797bc7",
+ ],
+ [
+ .count = 10,
+ .key = "4b1e637ddd889ec3de9687e1d00efbf1",
+ .iv = "eeb95865db33cc0576e8c007",
+ .ct = "12f4cff0564fbd78a30f6e5b94",
+ .aad = "36066a37b9fe24218dc09b7cb3fdbaa2d516106f4f87e1a207b4c9b70242f18dd755dc5e82d1684edf2f06d1fd167f3c",
+ .tag = "d53a1c8cb52a80367a6847e3733de17e",
+ .pt = "c5694b0bce9ba2918cf689ff4b",
+ ],
+ [
+ .count = 11,
+ .key = "15987b4622213f19f48e7f49a8c96cef",
+ .iv = "7d757f1143d4e158729ba484",
+ .ct = "a9c2336451553ead58c3324ccf",
+ .aad = "1b65f7f64e6cfc6d3b6d133e33b8d1a8c4e1aa37e513c2d8a4f1d682fcd8acb512738e90186e6026c248bea612ea7589",
+ .tag = "507c941649fb802a230ef2e61e2f8c75",
+ .pt = "24fd6844aca0ab5070ce41b4b5",
+ ],
+ [
+ .count = 12,
+ .key = "e44bdfe6ebe04374145b7e5b20e080fd",
+ .iv = "87ab6a85d5bb3789fb70f8e0",
+ .ct = "1ab5e65019f20c1e5548c4e6c3",
+ .aad = "619385644ec99fcb51fb5491ff6ab69538d7e4932bf07e20d8fc7bd4881c1391f45eff2372e175f1fd872c7149fc858c",
+ .tag = "f6565275180ca7ae363d82890f3aa59a",
+ .fail = true,
+ ],
+ [
+ .count = 13,
+ .key = "863550a2fb509e6418e342a4bddeb219",
+ .iv = "dbfb5238ed3d1c1a2af4653e",
+ .ct = "2c91779a07504c069a790c7d35",
+ .aad = "ddbb12ba633a780487e71216549f29ad7d52cb59aff1bcb8889abd894b3edfa4e75d661ce793286238e30d434d80ff18",
+ .tag = "a88559f82c6eebada6dc45153ac944e5",
+ .pt = "4ed8fb109e9dd47b4895ab8c85",
+ ],
+ [
+ .count = 14,
+ .key = "40100fbf5c359c60c7a01c95b4ad9d63",
+ .iv = "0559e0d7372f935fc01b1d1a",
+ .ct = "8c1bbbe67d0fc9355d3d1d498f",
+ .aad = "e46fa70761a4480eda444c81263fd62ca12a720b2f40d17e572f2f387a07fc6473d82ab607d558cf08429557011a949b",
+ .tag = "4a44b7d7eafaefe4407a9ae992de3d57",
+ .pt = "a0dabff03e4ad138e0e3eabc53",
+ ],
+ ][:]
+ ],
+ [
+ .name="aesgcm-dec-iv96-pt104-aad720-tag128-key128",
+ .keylen=128,
+ .ivlen=96,
+ .ptlen=104,
+ .aadlen=720,
+ .taglen=128,
+ .cases=[
+ [
+ .count = 0,
+ .key = "3eeaa3b5aa99f6902d1d58421b53ddb1",
+ .iv = "71240c996af69d590ccc8e8d",
+ .ct = "9a50a33a9438f485e7c89caba7",
+ .aad = "b1176b9e28794cb627c5cb3743846e6d11339ce6d0ce69789833b9f344e92e5360a0eb61b173687f74eae3184ef641f1c42c5b180014ca7e6b0edb00fbc35f2efa7aac7111dd8ec70e851a3ef2e2436ee07e4fba213425b1a8e4",
+ .tag = "e2865b861f8d5e0af25757905dd0653d",
+ .fail = true,
+ ],
+ [
+ .count = 1,
+ .key = "9dbb962de535a9e77108cd049dea0481",
+ .iv = "72d607c6dbc4fbbfeacb042a",
+ .ct = "3c8ebab6a3c4ecdb1ed807c962",
+ .aad = "9127cb0deed0e5b43ea153b1c17b484225a49c13a5f5995f86ef28a65f9f82397dffb34d4191c3db60492473d5df839e234a537b5a1cce9dcba1b1d205c92c4b4daea01186737cef6d42829ef07f0b6b2920baf998f6ad0d384c",
+ .tag = "9f8dc7e66cea95d7915281301913d3d5",
+ .fail = true,
+ ],
+ [
+ .count = 2,
+ .key = "77b55a5b37690c9b1b01a05820838e3e",
+ .iv = "7a8e0d881f023a9954941037",
+ .ct = "e0eb3359e443e1108ed4068969",
+ .aad = "0bb1ad1d294b927c24ee097d0a9afbaa6a62c8923627b50bd96e5ba852509a2e76f7a10ee3987e37a55b92d08531897e6cd76462403b39fb31508cc9fc7684ab5ec2ccc73e8a7f4104a277319bf207fcf263eceed13a76ca177f",
+ .tag = "ea6383077d15d7d0a97220848a7616a9",
+ .pt = "d164aeccec7dbcadee4f41b6a9",
+ ],
+ [
+ .count = 3,
+ .key = "d5cc39db2b34cee01345dc52be7d5103",
+ .iv = "f662499e42f14bea6977174a",
+ .ct = "9a84bdd3ac1724216772349f59",
+ .aad = "32d9b18f80e4502ce6fe80fcb58cfa233dbc03d342277a5f381b075a386553895a722392c50ae74bcef5266bbbdecc838048924af36418fcb61d94094c86f702677e454c972affab146d629aabde3680bd7d2a669dd4d9e630fc",
+ .tag = "c15dd85c92bf94b4b901a771629f4600",
+ .pt = "ea48032834d9969e6c9f040957",
+ ],
+ [
+ .count = 4,
+ .key = "64eb561f7f132cf5a6eb6314360a6c10",
+ .iv = "c7604206c6e9800dcc4b29f4",
+ .ct = "df392736cbe2067acfbb675e37",
+ .aad = "79970cbf48f78920de1583f777d0d5a8d146ab16a86f2148a6134b5dd55c51c7ab1d0f9219dee77d618ce018f014ebe985c527d0641ac991eda2d48135dd8c552e496e33a65a5e5804546570b53dde4ba860d5f61505dcda77ab",
+ .tag = "c382e9854234cff3512ea17a8a8092b4",
+ .pt = "dc1fae5f1f0778d378c781dbea",
+ ],
+ [
+ .count = 5,
+ .key = "f27057cbcccc9cf163abd867fc891486",
+ .iv = "b224fea2ecb2b3a5c8fe5596",
+ .ct = "e9fc65eacd5be8b6865f853fbb",
+ .aad = "50567ac439f395f3724b14882896f76832d2d464b95d5712b6f8664489d6751ec001140fe47acf75d893590ae22ce10fae18cf97d1c16cfbe52885cbdb7f1d1258adc49204aee73c7cf63a45e70196571cee496c3935f3a142f4",
+ .tag = "03e3dc31120402ba3a615ec0fa33173b",
+ .pt = "7c17f64a8e1c6072c83f8bc8db",
+ ],
+ [
+ .count = 6,
+ .key = "e9b652cbeeb2a556ac1826b19cc15958",
+ .iv = "d21da8693af1613c72bdf1c4",
+ .ct = "f7c92206909abf170063b7d6b6",
+ .aad = "9bbec67884adb146cfcc1456467ec75a37d3623d4a4a396276778151d591e839b4f8e8d96a3d1821c7590b3fd5c3afda9f70709d30903b978d2e6b166b72bf68dd48277929cc77ef45b67c8440e98c5cd89c02077f35e7a55a83",
+ .tag = "263367dceed0ae0ebdf33bcd43f3cc56",
+ .pt = "f12db98355e4a37eb8128c5ef1",
+ ],
+ [
+ .count = 7,
+ .key = "d9aadddaf333bb0f78aaf5cdfe0029b1",
+ .iv = "c003a76eccd9bbc3ec85dc2c",
+ .ct = "091df0d0b2aae56a00eb252509",
+ .aad = "49c3351f3b103d29fbe6cb6c38a7afd2a06e42409372b04cf1a9741fdf86af62c57afc203d607b384c87fb9d174a1c9e1debca7a084775d2611de22f17e64b1ba9e286699f3276c08d05aaf0dcaec773f33c43d7de294a7915b0",
+ .tag = "8b041e3c4387fa45afb43ec83d2d11f4",
+ .fail = true,
+ ],
+ [
+ .count = 8,
+ .key = "2dcaea867bf72bcd91caff043cf08007",
+ .iv = "07a1a531fa30bc77510d0453",
+ .ct = "b4fa6436b16942d3f539f47cb3",
+ .aad = "a757ffcb0d6387b870dde672e863da43f8e71a8a5ecc2af9414dbc99f17a0ce3632472d2b75fa1cb3a6978af9813c1e779891837e6088b24c10622deb4f2461335dfedbe71576f721a070aea32be8229e2c9db109988f61eddd1",
+ .tag = "4e3868460ed3a64c2f9216f254949ea2",
+ .fail = true,
+ ],
+ [
+ .count = 9,
+ .key = "eebb7f4031121fbbe400bd449a7ccc8b",
+ .iv = "412eeb64a9df2ea98e8b1dbb",
+ .ct = "3fe649156931273eb3ac9db896",
+ .aad = "054b1dee5ff5310db9451f8de5cc8a17bf5ea315a13a3d3ad921f64eefd634e0ad8cc0debd61bf5c089beed9cfdc3a62c4f867c1a385a38a95be4dfc226c91ae1e43e66c204f84e112687b194d202ee5aa2135132b9d5e4ee91d",
+ .tag = "e1867166f788de432f90b5c2a21b4cea",
+ .pt = "13ad6e1ea7fed171acaa9a5c7a",
+ ],
+ [
+ .count = 10,
+ .key = "6ca30f76a5bd8db10f369d492076d5eb",
+ .iv = "32ba3341d212d8e5e021f2dc",
+ .ct = "f9eb93d2dd2014736b64795166",
+ .aad = "cd5c5ba9269fd8a4b355f7a72ddccadf2d7248e93e27af3d17ac7a25caa5c1931cdc0ab8f19ef94b3d9edfb249ba701a0cce9d0bb9fd3650040342b988d9f7305f8819ba84c679093e04a67c5554ca37d6d10234594a66bc261d",
+ .tag = "94f18a542f3b55881365392a743fc4ea",
+ .pt = "2ce2935dc618a081100af7c61e",
+ ],
+ [
+ .count = 11,
+ .key = "5173cbc7d19b39fceef0ae6efed41ad3",
+ .iv = "7c0a8ebe0006db0d8d3325b1",
+ .ct = "0d01b48b52b1e11d7457bc3f0b",
+ .aad = "2272b3fb6735c466666d7590e989c47537182bcc85f3ff1c3e7b0618ab125f15d163d6d1868ee82c88df740fefac22538ddd65c532af37f5e90ec5c953b88da3806322e28c3505f9bcd57d3eaffece4170b5baa1a5b928bf3c07",
+ .tag = "d568c0e4a644381dea718c2b7e1e1024",
+ .pt = "e7a3941472ee04ae90d34e6da6",
+ ],
+ [
+ .count = 12,
+ .key = "ac45fccfc2f37966fb18eabc75ca7f13",
+ .iv = "f6437d540571986c8a9deffe",
+ .ct = "d2fd74d90a2aaef2bfdd88638f",
+ .aad = "999446c6391c45f6abc1094402da2d602fbeb973b15a33df30fd4493c0e217fa610fea050706808310663af2fbd66b3a5485f082aa75c824c684fbec62b7cc9ef16ec43c71442c891bc4b47daec6b927532fee5bfda611ea4d56",
+ .tag = "63d7efdb868b83704980b2dd7ab72a95",
+ .pt = "9e0d96b80bfb65551dee91d828",
+ ],
+ [
+ .count = 13,
+ .key = "b45d5a5c1238c6ff6452fbd605b9d60c",
+ .iv = "60dc1c9970bc7242385b15c9",
+ .ct = "200be21ae091ef2d6915ff00e8",
+ .aad = "d7b7e4cc20125b86815dafde75b07a0af4b16995728bf632500fb3a0edd5b281417f5125abdf4861963f3c93d870e58e6703ca760fa1b8e25d4134a4a7786267de107fa6560fe6a12477c29175eee02b7d9a010f2c0c83fe389e",
+ .tag = "f8f393c73dc613981e9d19cc9d273a76",
+ .fail = true,
+ ],
+ [
+ .count = 14,
+ .key = "a4b4b85fda2776644ad63eb6e1be48b9",
+ .iv = "635d0bb5e2240b195f21a28e",
+ .ct = "0cbe3cbb0725cd28d45745ef5f",
+ .aad = "69d1c68e1521d821bc6976884f564f8a9715e76b99d91819eca63b1d3d12923c3fb868edc957d333a5621b6dd1fbbb9dc1b9a1b87faa155a84254cb23519b39796545d85dbf3302aef8225a2236bf64db82dc85683802a0a89c8",
+ .tag = "6cdd16fc0c83baf439da1e8279acae56",
+ .fail = true,
+ ],
+ ][:]
+ ],
+ [
+ .name="aesgcm-dec-iv96-pt256-aad0-tag128-key128",
+ .keylen=128,
+ .ivlen=96,
+ .ptlen=256,
+ .aadlen=0,
+ .taglen=128,
+ .cases=[
+ [
+ .count = 0,
+ .key = "bfd414a6212958a607a0f5d3ab48471d",
+ .iv = "86d8ea0ab8e40dcc481cd0e2",
+ .ct = "62171db33193292d930bf6647347652c1ef33316d7feca99d54f1db4fcf513f8",
+ .aad = "",
+ .tag = "c28280aa5c6c7a8bd366f28c1cfd1f6e",
+ .pt = "a6b76a066e63392c9443e60272ceaeb9d25c991b0f2e55e2804e168c05ea591a",
+ ],
+ [
+ .count = 1,
+ .key = "c3aa0400ea3f5107fbe8aa011e1391b3",
+ .iv = "9c22008475e7a907f7abc966",
+ .ct = "96a06e1fdb0082ebc6441312dd9cd6ed6f7fac745facc368b5ab2a3951bd75a6",
+ .aad = "",
+ .tag = "6e84d66448068f67889404263a047a88",
+ .fail = true,
+ ],
+ [
+ .count = 2,
+ .key = "0ab76460d1870b6c989383b615f3876a",
+ .iv = "32f38776d99843e9d79d6b28",
+ .ct = "fb4d7d8e0958ea76d9489f2c6b5308d75cf96c8e1bc6a08a978a65f0c0f510af",
+ .aad = "",
+ .tag = "b49a4c6af3403dfb57cf1f4bc25b17a8",
+ .fail = true,
+ ],
+ [
+ .count = 3,
+ .key = "f02f0436322783d369d552f0d6385474",
+ .iv = "e029e6acddaf62ea81f7f39f",
+ .ct = "14b4e53213de80bd995468df293a6bbf2452846c375a3706738db45e7c5d5ba6",
+ .aad = "",
+ .tag = "8a8a3c4693256f8b50160554824856e6",
+ .pt = "45ee8a0f38f91785bf8cac4bd05284249a8035eaec0e6e1946e0ea83a0ac3271",
+ ],
+ [
+ .count = 4,
+ .key = "693246ac318ccbab8cc852cd28415b75",
+ .iv = "1dfe6aa73ffb680dffc10367",
+ .ct = "73fc0c82a59165f557ac3c9a43a780ef2d7b55d3a269677ad9ad123706b85854",
+ .aad = "",
+ .tag = "fbedbf6b9085e06958a50b329f813346",
+ .fail = true,
+ ],
+ [
+ .count = 5,
+ .key = "8767a7a8be83374dc75b0891c4fffec7",
+ .iv = "498aecf672c73dd81aa966cf",
+ .ct = "032be9ca32e53e130f241d7a27b4959a6e2b71c98899cfdc66806a490c7fafc6",
+ .aad = "",
+ .tag = "c3918262698ba9d30e329cad60fb3eb2",
+ .fail = true,
+ ],
+ [
+ .count = 6,
+ .key = "7d34065ca9982a64b0603a6c080bcf4f",
+ .iv = "888872c261b3596692ab96c3",
+ .ct = "9bba3cc23f91eeae09269f9402967bb8b376552461faa10320741e861d3a2e71",
+ .aad = "",
+ .tag = "954e7fbb62b622216fb7d1d2f367eabe",
+ .fail = true,
+ ],
+ [
+ .count = 7,
+ .key = "8f76fe87c4ce76ad7f5e5858030ee64e",
+ .iv = "0b5c3b98aeab6525f0cbff7b",
+ .ct = "37b795a6de594f97cbd51048f958caa56ea04d6ffd42683364857323759d0406",
+ .aad = "",
+ .tag = "1ce35f577b0661dcf1858b92061b4d77",
+ .fail = true,
+ ],
+ [
+ .count = 8,
+ .key = "9b8259870255aa4a7ebb0e5ffece4396",
+ .iv = "c9258baa6b7720f38d8f5a76",
+ .ct = "46c291e1792486d98d5aef943e11c215ad38030861a14013014b34eadc771296",
+ .aad = "",
+ .tag = "ef28e61958d92b8a2c26dfa69a3c3577",
+ .pt = "a3432fc525848dad2a4bba5971bb51ba0393ee8dd61989124c6c457b91c25b88",
+ ],
+ [
+ .count = 9,
+ .key = "a00e8e77494da619e978a6d05bf86444",
+ .iv = "bdee5a78113546f33d1cb13d",
+ .ct = "68f25dea2677b57a19814eefb45c88f6f5028c6129a6d6e3f94da50373e9a1ea",
+ .aad = "",
+ .tag = "0005f814865e5bd29c310e1b2761066d",
+ .pt = "ca2c4ba89d911f74c6d89ee4f3a78f3c9a0e00017d262377aa334a782641397d",
+ ],
+ [
+ .count = 10,
+ .key = "440d2393c60bbed9e804722d1ecac07f",
+ .iv = "578b96349a4c023ce12eab7b",
+ .ct = "68399bd1ea4dfbe7a91eadb3d6ee01e9f3267c97de2b6ab855d297918cb70065",
+ .aad = "",
+ .tag = "73650870d30e379d67858df44efa3b3c",
+ .pt = "3ac46dbb93f803235a6df55023aca55449764e91f65512bb9ff0b194788f92cf",
+ ],
+ [
+ .count = 11,
+ .key = "8a1877e0bc1e79d88a13684abc216539",
+ .iv = "ae660679b01bbd1982960ee8",
+ .ct = "3791e561d37ef21ddaf019a116f5609817bafe6c1875572f5dddc7f4e0728acc",
+ .aad = "",
+ .tag = "0d31783e7586a137b81b5b41d1ee5896",
+ .pt = "3f6f57db5b4c4ea4e5528bbf4b0a689c0c169a144f8250301ebdce33cb336547",
+ ],
+ [
+ .count = 12,
+ .key = "bffdb949412bc1ffd379a8bd5d1c618e",
+ .iv = "c8c352f9c47471c5ea3607e0",
+ .ct = "da123abf79c0f873d2c5eb65f7b9c4753d96788b1ca6ef8ce28a741558ba18b8",
+ .aad = "",
+ .tag = "c4f7344b1fcbacb86b540e741d4171b7",
+ .pt = "1d16adf20389315f655c22284a11b4c5f1d1a45bbffa6e47dc37751185df35c0",
+ ],
+ [
+ .count = 13,
+ .key = "28b5097f0f30860b587d5268365cd77d",
+ .iv = "afe9269bd8e01bc5a8aa6ee5",
+ .ct = "b6da1df24fe4a75ed3745bf71fb1b3ba11a3810a083ba6ec1c39f979fba6ffc7",
+ .aad = "",
+ .tag = "abea36a6da655e7aa7d7073bf936865d",
+ .pt = "276f7984d55a96f3250bb29bd80376ac54b737dffa6c99f06448cac814b6832e",
+ ],
+ [
+ .count = 14,
+ .key = "c8f7bc883121ccb5ac678a5675234d14",
+ .iv = "ff2929fad279c1f216e84ede",
+ .ct = "60ce0bd7045e77f84c6582343100fb7e1d299f07aee23189b38f5d4f93dc4519",
+ .aad = "",
+ .tag = "b31a35203371f6ae6c1900301aff3932",
+ .fail = true,
+ ],
+ ][:]
+ ],
+ [
+ .name="aesgcm-dec-iv96-pt256-aad128-tag128-key128",
+ .keylen=128,
+ .ivlen=96,
+ .ptlen=256,
+ .aadlen=128,
+ .taglen=128,
+ .cases=[
+ [
+ .count = 0,
+ .key = "3308bf978dca6bd7f5fe4ccd6d0e7c24",
+ .iv = "85996c785a83493cc7165c11",
+ .ct = "4c8f0c7ad73fc469b4b385f80741f3014ec236e29ca9068b8e55ed6fb2fc9b9b",
+ .aad = "b0ebb26b9e27c44c26543e257b7c7eb4",
+ .tag = "8b5528d6ef87eb0be9b6708fab7d654c",
+ .fail = true,
+ ],
+ [
+ .count = 1,
+ .key = "e60b37678b00cea55f72c593ac38067b",
+ .iv = "845de274d5ea7d6e0ce794ba",
+ .ct = "dbc9fb93ffb1698e5a1c062d391f63884c8d8fd862e07ba51d664bffd22b9faf",
+ .aad = "59c8ef4352877ee249cd11439b445733",
+ .tag = "08d213989f884aface743fb88f778395",
+ .fail = true,
+ ],
+ [
+ .count = 2,
+ .key = "95bcde70c094f04e3dd8259cafd88ce8",
+ .iv = "12cf097ad22380432ff40a5c",
+ .ct = "8a023ba477f5b809bddcda8f55e09064d6d88aaec99c1e141212ea5b08503660",
+ .aad = "c783a0cca10a8d9fb8d27d69659463f2",
+ .tag = "562f500dae635d60a769b466e15acd1e",
+ .pt = "32f51e837a9748838925066d69e87180f34a6437e6b396e5643b34cb2ee4f7b1",
+ ],
+ [
+ .count = 3,
+ .key = "dd2f191758cdeb480feee0beee689fb7",
+ .iv = "8a1c6f696968d1a77a44ba45",
+ .ct = "b43afe82184d077319a9366c1162c5ca4882da0df82207ccdc038125bb338c9b",
+ .aad = "ef910ed8c787999640c2bd172e5e686d",
+ .tag = "88521a088f92a1d3ff7ce5364bdc7859",
+ .fail = true,
+ ],
+ [
+ .count = 4,
+ .key = "b013ddc3c6125a9a8c3a309c6367a076",
+ .iv = "5999d3d65eeec4ac7227146e",
+ .ct = "f71242febd4826ea95ba8e6a3397f05c1b9dd82671680ecf7ab566f1e9ad787a",
+ .aad = "617d5980203988d4ca779b2f33cb904d",
+ .tag = "fb74b36de5e6d43a38849f7f9d1f203c",
+ .fail = true,
+ ],
+ [
+ .count = 5,
+ .key = "afa272c03d0343f882008f6e163d6047",
+ .iv = "271ba21f8fdcac34dc93be54",
+ .ct = "36a4029c9e7d0307d31c29cea885bb6c8022452016a29754ba8a344c5bbfc3e1",
+ .aad = "cdf5496a50214683304aec0a80337f9a",
+ .tag = "ed8d916c171f0688d7e7cca547ab3ab2",
+ .pt = "f3ee01423f192c36033542221c5545dd939de52ada18b9e8b72ba17d02c5dddd",
+ ],
+ [
+ .count = 6,
+ .key = "f869ffd231c95cc0822df5372842e755",
+ .iv = "1490881cf72ac7f8e7afd0ab",
+ .ct = "816ddffa6114f40cfb5d61f04379111be8e1defd4d9e77c87d6ebb748dc79bff",
+ .aad = "4b2b932803812720f6e044b5a5117612",
+ .tag = "88657cb7f8ef31e55d276d63648b9f0c",
+ .pt = "a35a1dfdb624727ec51431a804add8673eaef0398b8a3d2896b2d659a0c5bc1d",
+ ],
+ [
+ .count = 7,
+ .key = "98b984a6e61dbf66c9c6641d07e69c40",
+ .iv = "bbb54adca294947424c6b646",
+ .ct = "fd8f7aec05fec9fbd35b66e191556df6cfafcd3859927ec49b0f6f3031597e9a",
+ .aad = "0edb4d86c33d0098de1a2430f0462a5b",
+ .tag = "4651e0d440d42145d593c8db9291f1e5",
+ .fail = true,
+ ],
+ [
+ .count = 8,
+ .key = "88959a3edd76716399c33df453fb84b7",
+ .iv = "324d315e3b18d94a86170500",
+ .ct = "062cce52121a567cae3c78a99a28d87c679e418f32f79af1a8849e6d0e81d25f",
+ .aad = "fb760df45a75fbff72106e52d6da864a",
+ .tag = "825cbc27be42143c2461fdc6b404e86e",
+ .fail = true,
+ ],
+ [
+ .count = 9,
+ .key = "4555765171009f776032ec95f60ffebe",
+ .iv = "7595fbc3908df2b038c2298d",
+ .ct = "469239be20aec4a000384b8ba7ca8b9c1523acd03eab1ed9487a5a13c03bd62a",
+ .aad = "d2921132ebcd1f907e649c675d9dcad5",
+ .tag = "d2e2701f334f28f69f6b2d6a8de20d0b",
+ .fail = true,
+ ],
+ [
+ .count = 10,
+ .key = "69e8bfb2b7b84897153b431ec29fcb79",
+ .iv = "dd56a06a4662e2b692009a06",
+ .ct = "e740152f3bdc0a09c22146266bb3161ed1c37338f26fec26cd9d829dd6b96b44",
+ .aad = "3e465a94a95cc7f87b815afa196911ba",
+ .tag = "2e6c438cc38fa5da375f88e237fed806",
+ .fail = true,
+ ],
+ [
+ .count = 11,
+ .key = "d13e90072180031aba421d64d474448c",
+ .iv = "87cc23d00512a61933d435d9",
+ .ct = "cd1653f01d8e468e08131d263a10cd83a5e7ea68ed84225bceb4e0b57320cf83",
+ .aad = "b9ac2c45232f7305fcc6f2424c30b606",
+ .tag = "7b02db1e0dc0c2010080992ad01a9a6b",
+ .pt = "f1eedc99565378b3ded6190bbb1c6ca325e9e0dd57fae6a8190ce57ccaa302e3",
+ ],
+ [
+ .count = 12,
+ .key = "724d036af7649a85109ef3a597a9b133",
+ .iv = "33c0c8f3a709fa03e684696c",
+ .ct = "49be803ad200608b026138ca62acdca2288e67faddec35254a52e8a531990436",
+ .aad = "8c1095b33f3c4806fe1872916fb6f5f3",
+ .tag = "81c0405a283ec84bb2a08867bb9a2433",
+ .pt = "b643616673a5eb1985900ccfe8ab47691401242c5ec57ffff23fea10a811fbcb",
+ ],
+ [
+ .count = 13,
+ .key = "25aede64de2943c0a2ba83bb28075cf9",
+ .iv = "e91e66b0414c5ac32cafa3bf",
+ .ct = "54a85000a9a47cab4d20027661ee10940524dc06ac9db4e33bc0dc7e6cb6d20a",
+ .aad = "d7adeee427b52220d3305f4cb763ff8d",
+ .tag = "2ebdac7cc27d777e26cf12c73a1623e4",
+ .pt = "4b0dc9628a8deec3888c6e642d6f8d1859860c747439757e2d4006b9dce7d440",
+ ],
+ [
+ .count = 14,
+ .key = "5580619cb4b0820fad559b143ce0cf34",
+ .iv = "d1c93408a0ca93e94adff306",
+ .ct = "a461d08c458fd1b026839f8cf781f834b3214a31dde0477fa8c9b6e57bad8bd0",
+ .aad = "318dc3a4bafb2514346b520336bb5fed",
+ .tag = "7fc2d6bdd8326d540c02dd0fdf55e9fb",
+ .pt = "9d81e6fb879c506e83e641dcf9015f6994a1417d03c1eacbf6d7cba0c349cbb4",
+ ],
+ ][:]
+ ],
+ [
+ .name="aesgcm-dec-iv96-pt256-aad160-tag128-key128",
+ .keylen=128,
+ .ivlen=96,
+ .ptlen=256,
+ .aadlen=160,
+ .taglen=128,
+ .cases=[
+ [
+ .count = 0,
+ .key = "f3e60720c7eff3af96a0e7b2a359c322",
+ .iv = "8c9cb6af794f8c0fc4c8c06e",
+ .ct = "73e308d968ead96cefc9337dea6952ac3afbe39d7d14d063b9f59ab89c3f6acc",
+ .aad = "5d15b60acc008f9308731ea0a3098644866fa862",
+ .tag = "658e311f9c9816dbf2567f811e905ab8",
+ .pt = "7e299a25404311ee29eee9349f1e7f876dca42ba81f44295bb9b3a152a27a2af",
+ ],
+ [
+ .count = 1,
+ .key = "4ea997187ee51b478f5e1ba48b57f0f8",
+ .iv = "bb6fed9776ed61ca321ecdad",
+ .ct = "d4d67723dc367cb453c5b8ede795ad2b7affcf9f42650c0ea1df91e23175a7cd",
+ .aad = "abeeb5850efb796979bb55a1d255350d9faae4d8",
+ .tag = "def8ab2eda15fe03abee6b2dc9f6e805",
+ .pt = "87e9f743a7bdf04a2d97c4a6c5d243666bfb2bc80c9610bdb079792a3f724e04",
+ ],
+ [
+ .count = 2,
+ .key = "aa6d3c010d93c6ce4d574b5f4017b8b3",
+ .iv = "9480e879335e1c2f2f0b1201",
+ .ct = "752ffdd7014ef7dbb269b9e43d241ca94b578c1ee2052b26225450ba2dcdd114",
+ .aad = "5c03cbcbb53d7b44a47e247c0c8b77e5603552c7",
+ .tag = "63d1a0a5faf1cfa9f72bcec227169fbc",
+ .fail = true,
+ ],
+ [
+ .count = 3,
+ .key = "b77cc41840f9fbff1eae0b9b2fe914c2",
+ .iv = "81fd55366b7903e5c21e96c0",
+ .ct = "fe6cd8c592c40acd607fab35272044cf93bf1b64a34ab001564f474990ea851a",
+ .aad = "8c8ec50ddcc4c6526336caa0fd43d4dc6f0b71aa",
+ .tag = "f6117a62541d37d32d84e7ea15a709eb",
+ .pt = "65453a0933555d1f85d6f7faf9216b4bb5428885b995a27f30dfb2620748fc41",
+ ],
+ [
+ .count = 4,
+ .key = "9133d24420ede755f92b0c1013d794af",
+ .iv = "59e1ef4e934d9b730994a58d",
+ .ct = "b9e3365f552cb261082c9b412568d2beec164c4b9ce078e8fa6f2e43ce661bb4",
+ .aad = "dc27f9206bf8a3969fa6ce3fd3567ed71de9d2c4",
+ .tag = "01fbf3c551340b041cbaca24abc7f6d0",
+ .fail = true,
+ ],
+ [
+ .count = 5,
+ .key = "712768594a8e29c9abe255a8493a086f",
+ .iv = "c8614fb0a60e377a625b9c2f",
+ .ct = "eadb515d3167d2809f88bfe5fc2accf74f46f899981f44940192a79c59457ace",
+ .aad = "c6435e5cc2a492671bfd4e346df9aa831603d1fb",
+ .tag = "2440a1cee5ecae8681f7c65874bd75ed",
+ .pt = "1839ac4e4177fdaa0b7ce3aec45303c9ab44335a1c11569033a4202655c48c3f",
+ ],
+ [
+ .count = 6,
+ .key = "de0b9fc85fbb73020fc97ddb63241eba",
+ .iv = "b606b94274c5553a1e9602ba",
+ .ct = "155fb5effc689aaafeeccd281b4f9ad8c5188db05e0087150ee273350cf101b7",
+ .aad = "ecdb24c9b274f30a2f6e8f213e08c340b4a70a3d",
+ .tag = "94d02127ade107e784e5ce7957fbaf51",
+ .fail = true,
+ ],
+ [
+ .count = 7,
+ .key = "de5c1ce56bd1a8f5368c79150f878896",
+ .iv = "6180f7c5ff343b0e472a146f",
+ .ct = "93eed51d4f2a18271c9addfc27a607cc0ab083a9019a9bc56e16016c0fb0cf93",
+ .aad = "8f277e505f58a141c36c149bd21297e57db39368",
+ .tag = "da304087ac5bf7554844c42aa47df060",
+ .pt = "bc7e43d5434b4cee596f8466b91ea364274ded8427cb32a769b8c9ef5013b784",
+ ],
+ [
+ .count = 8,
+ .key = "d30801f1219679ca8e5c3740fc9921ea",
+ .iv = "1d617eed1a5d1b00185e025e",
+ .ct = "0016592567d2f1d15de34bcacf362184be63d25de8c6f829bfbaffa817f4ea8e",
+ .aad = "ee78be3b42b9d34310c764fd34ce638d7f9eaf4a",
+ .tag = "551f52cdb49eb910bfe8affee48010f3",
+ .fail = true,
+ ],
+ [
+ .count = 9,
+ .key = "8716c8d8b1db8c88074fd2b26f8c1147",
+ .iv = "3a267fee424de653482bf9d9",
+ .ct = "afd442f001bc4ae06aa10952261b3e91c915da30767d059264c4d8c4a572b5f6",
+ .aad = "32bd64332598fe7402dc46a90512086259913bb0",
+ .tag = "dae1ab57f4e9bc8e8c1302c5ff47d55e",
+ .pt = "557ecae25e16315e3af7e6aed7108a050517fca5025d1cc73922cb3fbe280af4",
+ ],
+ [
+ .count = 10,
+ .key = "689903458e666b9bae962af6216e1c95",
+ .iv = "2a99b776f5ab1381bad64b71",
+ .ct = "2e1124dbe2997d449a297c1393ad349013f043b095573b8e9d4d17ba4d65a9dc",
+ .aad = "065886527d81b4031dae7c34ad4792ed364293d2",
+ .tag = "a985f865faf6bccd511be3d04f5a0129",
+ .pt = "8990e990c2671242d33c19e06841a36b49b83ea94de6d3aa1e29834fda83a602",
+ ],
+ [
+ .count = 11,
+ .key = "a1207acba1aa57cfefd920693bd18c56",
+ .iv = "78c3f9e40dbb4feae5ed7f59",
+ .ct = "30387a274a099e22864c8e3e7a0c828406d283b0941f6507a45a459c59e178da",
+ .aad = "10ffa4cc7da0c9c8884cf204e403691f32def692",
+ .tag = "2a80c2c4a6e843b6d3ef50aebbbde919",
+ .fail = true,
+ ],
+ [
+ .count = 12,
+ .key = "b0aa82e267ea60febf7220167bf2a3df",
+ .iv = "50f86a412cc6c599cc678d24",
+ .ct = "4fd730f52fb80fcf9f1b48239cf0fe1d5a290f682331b01d876204ace098078c",
+ .aad = "552fb2751d6694433850e8fc48b47874db07267b",
+ .tag = "14f41ad80c148007bc596db99214c321",
+ .fail = true,
+ ],
+ [
+ .count = 13,
+ .key = "b0faaad121fff2d147a4f0b166c41976",
+ .iv = "bc081b1f49b62e94b44a4454",
+ .ct = "429ba584c05b6aadf4fe07c468519bb96e0b30c417975b455e2d8c242bae63d4",
+ .aad = "8930fc9bb08376641c76535bd02ccc71af12dbcb",
+ .tag = "71d8196259ddd346d38bc7ec00b328c0",
+ .fail = true,
+ ],
+ [
+ .count = 14,
+ .key = "7f571d7053533f29cec3c08779edc7b0",
+ .iv = "65aba6342903457406b3519b",
+ .ct = "9186587933ddc6a83ab8df4bf6ba7c7a584bb5ce19de4fccd0903108f691156a",
+ .aad = "b6c4bc5c14ad1344ce2b1483f78b80efded57032",
+ .tag = "9bb738194012c804160936f013978977",
+ .fail = true,
+ ],
+ ][:]
+ ],
+ [
+ .name="aesgcm-dec-iv96-pt256-aad384-tag128-key128",
+ .keylen=128,
+ .ivlen=96,
+ .ptlen=256,
+ .aadlen=384,
+ .taglen=128,
+ .cases=[
+ [
+ .count = 0,
+ .key = "8453cf505f22445634b18680c1f6b0f3",
+ .iv = "fab8e5ce90102286182ef690",
+ .ct = "5475442af3ba2bd865ae082bc5e92ad7f42cd84b8c64daadcf18f0d4863b6172",
+ .aad = "ff76d2210f2caec37490a19352c3945be1c5facb89cb3e9947754cade47ec932d95c88d7d2299a8b6db76b5144ab9516",
+ .tag = "972a7e85787ba26c626db1a1e7c13acb",
+ .pt = "e4abb4773f5cc51c9df6322612d75f70696c17733ce41e22427250ae61fd90d3",
+ ],
+ [
+ .count = 1,
+ .key = "87a0af6da98b86e82098c9a7564554d7",
+ .iv = "1991750a529395fe5b802332",
+ .ct = "9a1e0fb7ec85f1c4d82111c7ad73085cb75f8478f362102cb4c1c27bc38cf4da",
+ .aad = "6253a0d0d54234476bda68f2a4db8fac5c21206f1bb41de2e3c0a06b9d068c4d8cc99de08d0c6720d5f06ee4f981c23e",
+ .tag = "9cd38b99c212342c816263c802656655",
+ .pt = "1734cb85a5df60143786fdba7165f286d44ea0442eee802a36aa241c72725e4c",
+ ],
+ [
+ .count = 2,
+ .key = "ab124c19896f9a725cd84bc65c0b769d",
+ .iv = "8be6b8884adb0acb19776719",
+ .ct = "a77bc17b558e829efdf4508c62761520a44920840c4d8e8cad0564931ffb6f0f",
+ .aad = "f3f8c4d2edf80986c33940a9dfce5c64ac314d9969bad730bb719a4a39551eda6b771b6941ba301a4bcf2c7e69c8a000",
+ .tag = "890106f841f36315a7fed2ffb57f2dbb",
+ .fail = true,
+ ],
+ [
+ .count = 3,
+ .key = "2c691107ac3eeac8507f7275d35daa6f",
+ .iv = "b1c7fc99d810d00bef25163a",
+ .ct = "dbb74c34d430d8bbc1a859418f0435c18deab7bca9d2c7ed3e9a1647de0e5f62",
+ .aad = "78e36ff5b2be643c948c1bec4153b2e9eaf0bb4a4a92079bab1fc42f3f66f25d075ec82998993c95fb8474b8091f4968",
+ .tag = "b6bfa61751a82d581436ea837de8c483",
+ .pt = "42f707406147678db6f51122e58bcbd4b9a8fd25bfad242aef6fa516663fd0d7",
+ ],
+ [
+ .count = 4,
+ .key = "078a2edbd9b6e86fa94a046cb688d6b7",
+ .iv = "26bc3ee0106ee36e8b081fd8",
+ .ct = "b8f270f2b8bb2fa214eb35ad946212bd428390ab7ef652fc3e8c2226c3bc3416",
+ .aad = "f93cdfdf0a98cee33f2f1b485c0e7115f7a56c80b0de75d4b7c87a28036f8e1fa916d6cc78f28cb3c19c19cf2173c5e2",
+ .tag = "0546d0182a212bc2f7ee185c4e33a510",
+ .pt = "2fd09e96f27b31a8a22b778871bf71e9229b18e5ef42e28efbed8899122510ff",
+ ],
+ [
+ .count = 5,
+ .key = "82d166bba1e5828f761e4231fbd2c76d",
+ .iv = "f8b7d0adae5e4412b7287d89",
+ .ct = "15f880e5c31c00240d2ca990495b597706939c9475c14a2a65582e93263d5479",
+ .aad = "c675c578ee2754c12bd5a5c224c76d9aaadd2a1e7b70e51a1d6a13c9b2aea578444dd8b28b457ccf7cb28d4780fc1f86",
+ .tag = "4ee3f9cc35eb9d4ea65f162e8d6900db",
+ .fail = true,
+ ],
+ [
+ .count = 6,
+ .key = "7dd5c39e6c6cb282a57930fa453c02d8",
+ .iv = "73d4f1c8f69005370f509513",
+ .ct = "80510c8914046fd36efdc24c3dbc74dc8d1903d7951603175d780cf95a4cd25b",
+ .aad = "ffdcf3d0a8ad8259c3f44f4abe72864e2876dd3c988658d78cff9a48fb6f0cff5e8da3fa7473e23e5efa5466fae7c01a",
+ .tag = "456968965fd36c13415a701ebc77720d",
+ .pt = "56ef49a830c1b531843ba6a143b5eb7eea88f5f9edf9ef68e1c86ddd8b2ef9b7",
+ ],
+ [
+ .count = 7,
+ .key = "65541c7a7af95c50fcab82c9e8d24be3",
+ .iv = "9e8491154a9fa91e35921039",
+ .ct = "480c33465d805349beafeba53128f5ba234b8353e7f86ecd13992aa9aaa8b933",
+ .aad = "e4f223988ee19c5065680ccad637240eb7bd659feefb0a8db0a5935ea2096cf5e9d89a1204248d00a70e102a9abf398b",
+ .tag = "818f7229a392451112b5ae484c40ebb9",
+ .fail = true,
+ ],
+ [
+ .count = 8,
+ .key = "a89926044fd23eaf3eaf8c6f05afaf60",
+ .iv = "0506ee0c664394dc6c857d8e",
+ .ct = "329468ed34820830fa4657322b909cc6914bf51bea00a74b703394947dc29c2f",
+ .aad = "af6ec49868cc4ae5a12e677ecd60679da0844ef8316078ee5ff8faf04de53c9c6bcaddef8b0833155c9579636e82b6e1",
+ .tag = "d5d610ea8810931e7ddf226d8569a54b",
+ .pt = "a351f1709707501305e57ae767e89a7340f148112c1122734f68946267afff7d",
+ ],
+ [
+ .count = 9,
+ .key = "8d36faf9f30ec69b5f8dad1e491f0f3d",
+ .iv = "bf58466a6c70bbaa39ff7eb2",
+ .ct = "ace177fedf749b0312052ab77ef8074ec325ceeee3859177f6c952e7826a661a",
+ .aad = "3535b93a652730ee47bef47650ee4f1f30a6c70491d0d56427caee2c4ee763ddd16575b6a3dee65ee7ab3e508ce6b8c4",
+ .tag = "324181117f39f500e7cfb6bb851909bb",
+ .fail = true,
+ ],
+ [
+ .count = 10,
+ .key = "ce54095bf5678115a76a89c4130450cb",
+ .iv = "788ec8fbd3cc197551739ceb",
+ .ct = "088efa30b927a8b21b86fa0bbe4e9ecdbcfcdb0a3379b8e758092fe21b23c99e",
+ .aad = "634e3e6d72a31879f8030736957a9f89896475f915f627e73a32c9333ecaa2aece5e98b90a5668e6ec92913e3d91e570",
+ .tag = "9cb0e77f5b403ff85152a30a154457b4",
+ .fail = true,
+ ],
+ [
+ .count = 11,
+ .key = "99b3c4b8f2329a8eade022b7fb4f26bc",
+ .iv = "b72d8545efe1ab84f0455e91",
+ .ct = "e5a56edcc5679aa2e7301119414656b406ddd7822c2de4772b8898ea0761825d",
+ .aad = "9fb2c737e9c7de8052221ac0b76cd2a2289fc59b4cd646bb9622e30ea227f0cca33981ff51f27afde410f99ff6a810cd",
+ .tag = "43dcad1123d27635015a5c42296199b1",
+ .pt = "6b6403baa0ae0b354eb25641a5e958b5bd3f7108694f3ed019d1dc5ea2695625",
+ ],
+ [
+ .count = 12,
+ .key = "924b27bdcaf559e4a7a7d6c6332904b5",
+ .iv = "aeaed2c7b9a78acf83ecdde6",
+ .ct = "c190e4798254ce50ecf2fec69a46ee9a6ac9528dcb25ef72a5dc2b91cda0017c",
+ .aad = "e6ce29b8810499861fe179d3eee4bfdd2df25de10533e1334ce16d41dab3e8074f91943f2a3bcc7a04f657e84e9bb5b9",
+ .tag = "0aea374ec34347946cfbc4e251b7ee2c",
+ .fail = true,
+ ],
+ [
+ .count = 13,
+ .key = "b12ac950027bf3ac01df1cb743553a77",
+ .iv = "5bbbb442bbc5114f949a274e",
+ .ct = "53738852ee4cf26c4e41675b31aa04d723b314a22924fc3a12d474ddc0771f8e",
+ .aad = "81ca7d80c572abf9f9f3078258370b7763d603380bc536879e81185488bba8d029a18eebccd2eae9812c4af45e8758cd",
+ .tag = "2310aac3905edc0ff5839ecc17fd43bb",
+ .fail = true,
+ ],
+ [
+ .count = 14,
+ .key = "6598ebb72aeeb3def673f6fbbd9e5a2b",
+ .iv = "ad29f048ec023dbf4e6b2f48",
+ .ct = "0ce27f78a31a177741922fe99b1f44b7386e4ae5a1a666d6ba23ed76e61d3954",
+ .aad = "1457f349d36bfa595609ec4c174114264f1a5993264ea51fc2ff4055e132f3062cfa671a16367798f77c9c3146fc3cc0",
+ .tag = "5ea456be8c8cd7d1f18888ae74e16be5",
+ .pt = "19832fc5a9d40d0cc9c7c2de8009be8323f79346b040b30551006eae72eea264",
+ ],
+ ][:]
+ ],
+ [
+ .name="aesgcm-dec-iv96-pt256-aad720-tag128-key128",
+ .keylen=128,
+ .ivlen=96,
+ .ptlen=256,
+ .aadlen=720,
+ .taglen=128,
+ .cases=[
+ [
+ .count = 0,
+ .key = "07a6be880a58f572dbc2ad74a56db8b6",
+ .iv = "95fc6654e6dc3a8adf5e7a69",
+ .ct = "095635c7e0eac0fc1059e67e1a936b6f72671121f96699fed520e5f8aff777f0",
+ .aad = "de4269feea1a439d6e8990fd6f9f9d5bc67935294425255ea89b6f6772d680fd656b06581a5d8bc5c017ab532b4a9b83a55fde58cdfb3d2a8fef3aa426bc59d3e32f09d3cc20b1ceb9a9e349d1068a0aa3d39617fae0582ccef0",
+ .tag = "b2235f6d4bdd7b9c0901711048859d47",
+ .pt = "7680b48b5d28f38cdeab2d5851769394a3e141b990ec4bdf79a33e5315ac0338",
+ ],
+ [
+ .count = 1,
+ .key = "46bffe71ac52d4cc327b612469ccfb10",
+ .iv = "78496f5e653ea0111b0ef4c9",
+ .ct = "8c620a9245557459d7631f0df5935a9c4f05ac7f842e31c270264451090c21d3",
+ .aad = "954dc3942300fbd61bbb7e1c6a00836ec3875e6c12656df3affa4605200e4adf429731f6e7386bf43744cc252db523a322312702af68018853aa39a61ff88ce785ed727e0916057a97fa0c3e6daafba1aa79bf597ccddc4b5b97",
+ .tag = "20fe30dec5f3a5a8b8117afe65b81ca3",
+ .pt = "59ba37f99a3be7b216f2a70dbc132f4b5839a5a57b51049daf9392afc02d9355",
+ ],
+ [
+ .count = 2,
+ .key = "e306843ece9d0e98edf07aa3d1e3b6ed",
+ .iv = "9cc69f1c75cf0ee74f3a4ef5",
+ .ct = "ef59d545d7e921dcfefbaab0eea561e1c8cb12d27cfae589ddbf9c5271d41453",
+ .aad = "76f1e842634fc3a22be7b899d5616d125d393432c897f7994012f8c29934ff33ea4fd3495a52a1e3ea587a9116342c3ee304345d5e29102560df81a492799ec689e530dcd3e52711eebb43c66f645e5595abe5eaf8d462049d38",
+ .tag = "c34930f3143b4746e574e653dfcc524d",
+ .pt = "0bfe265de63d70091b4f0537ff4153bb1e07502c55486f089873fdf38a9319db",
+ ],
+ [
+ .count = 3,
+ .key = "d0edd41ab297cb5d5df6b90a3cf1768d",
+ .iv = "da4ef7e726e3a39d243c8444",
+ .ct = "d1c00496494bbcfefb04c5214657e9aa5270cd55e631ea914540312aa58ccd81",
+ .aad = "7a11df8fdef5aae36cfedd41565bad36fffbd6e6d9668135273e226dd83bd3ce84923a158747ddefefb12d156160d1abf3f35e1e689c40c2c0214ebb436c87528b3699e75817192894b54b47e3f508095230744b1b12f699cee1",
+ .tag = "7b9c7f4e5f471036ebc16c825f7e8e7f",
+ .pt = "b9077e1f9787facc6fa5903b03d90af119454f8190f87391cb356e277cd3f06c",
+ ],
+ [
+ .count = 4,
+ .key = "291567951e7d6e7442261b66372b3a6c",
+ .iv = "5a60ab4b00333bb34e292511",
+ .ct = "0de6fe0eb4d94284388068226a84d6f86f181e320840d3f28a2bf6b92a17f7ea",
+ .aad = "48055efab58264015eb49fe444de55edca701e09b679ec042abcdcff978e2b7eb74d0be0a84c858301cc415f5159f2a531138109fa5c559e770e6040f38ccf9302b790282458bbf99dbb494ae5c348ee4ab0f77d63b9dba6de56",
+ .tag = "38af26303a1ac4f8a5cb58420fd34803",
+ .fail = true,
+ ],
+ [
+ .count = 5,
+ .key = "44a0482a02ecac36d03d074949ca7815",
+ .iv = "c408ab22ba66b18947e3559e",
+ .ct = "dc9d20998356985d299d81e965dd39abe03a1c04eb6829f531bc3d622cdd6e6d",
+ .aad = "fde37b7c9af3bbba7501d7b91dc456e32a6af77da2afae3b28c15640f5d99eeda5bde206d54c8def9c60eede741f4e4e50353119bb30e2523f073a7a367972b0c90e96a88a511646cfe24468548e50ff520bd5b8abb2a67d1304",
+ .tag = "e013def1d2c5d1c8cfcf37ff1b99fd6b",
+ .pt = "3a995dd4779114839e2df602a4eca9c9e96f774aefdf3a78197e1a724de86cc5",
+ ],
+ [
+ .count = 6,
+ .key = "1edd5afd2b7a09e87528172eba3b4ece",
+ .iv = "e8cc6fc5863f531860da48f0",
+ .ct = "b3d8fb923602f6570dedfd35392a78b3c6a824f6b0cae18f767bf17b51dbace5",
+ .aad = "bb42f41f140f4b02f948e2e8022ecca7d74208171c52792989df161dad0d689d69e1ddcedc2dd910c6cc80f5759233ff9d39a571f48f42db1491b4d388f70925637bb6728cf2d47c2a9ed62240e2c948755750048230995fbae8",
+ .tag = "18e61e77a0da2f9212e49d9dbf1e4dfc",
+ .fail = true,
+ ],
+ [
+ .count = 7,
+ .key = "801405876cbb2529d3fbe75ff683ace0",
+ .iv = "70c46c7056213d4451f5e5dc",
+ .ct = "a24f742c07d0ab8acab04f8fda4da7b5ac05728c0a7d5ad3bad0a0e845702a05",
+ .aad = "12942eaeca76806a5761cc76423240515f8f5d9b0d97557c5edb56db35dcda8a939b6375bb0b51ea7b9b67129304f82ce18f4a89edc75ce3db06a2e8607305de65349e4a6ba2d7ff8a13642caa59efb2b81cc050809bc52dceb5",
+ .tag = "cc03cdbd5b6bd5b8614a456e2e14c6de",
+ .pt = "daa772583ff5d445cdff53f0ddfd509ec8f93029ae0809b6ed54a91330ba16c1",
+ ],
+ [
+ .count = 8,
+ .key = "35f32d1f51d7d568ec80ab19555499cf",
+ .iv = "4af3095403b32091ca64c69e",
+ .ct = "4260444f1fd74ff30b0a8aefdf6b4bb39841678efe2ae7bfefc50d5b763fdf5b",
+ .aad = "a85fc884c10eb788e76e31cccf459b48d7e0bfc20f364316ced3ba81557ce3cc954357455e2998f3a9f3fe41694a8042bcc42a35fec042f1c24761b17a972e7d8255d0f1256dc8356e02baeff99e6b35203e71e4a95f61227ef6",
+ .tag = "c659d690592881cce6eea2d6723a63ad",
+ .pt = "46eaf310e55f794e5b33429169450590272513b881df740e377c6b2f7744db78",
+ ],
+ [
+ .count = 9,
+ .key = "b4aa6cd190092a887d0450302cff4464",
+ .iv = "f2dd629677deb47e9f6a87ac",
+ .ct = "84b74187e987fd293d743f0a42943ff52b6cff4710ce8adf387d84d9899df368",
+ .aad = "dcd080bbdcbba07f1b9f9daef2cdbc2f9d579adf42b2467454cb2cf5233b753ca3ad04c61fb832e77ade745d600621ddfa4c14601865e013d3eddac8d2ce3733be0e84be1765200d778b9ae1bc087a97e89c9532971ea2177ecd",
+ .tag = "6d89454ba2e6506d2a4a3fa1339af144",
+ .pt = "75f80807a10beb8dace8bd1200bd8c2589abfa789b71257a9c7b15c0c14a89b8",
+ ],
+ [
+ .count = 10,
+ .key = "632072de94a0b3aafc8faad0337c3dd6",
+ .iv = "0fd43cfaa52a7ede50c1fb48",
+ .ct = "1a735b4723ed2eee23a5ec5706e41e7488b7ae34a01e741ba30c851b7a570e9b",
+ .aad = "24e3af0dd3492e86598b8811e03d689b3802c972f081655320418045ceb7390f52592b85fc90acfa4717dad6e05c10957e33dd1cde30d127b759b2a03f3289f49cf3992d2a154f7230d50dafa57b7e78402946f17371661d1945",
+ .tag = "c5e92a4b0ba5729de2c65c4ce33c0e8c",
+ .fail = true,
+ ],
+ [
+ .count = 11,
+ .key = "7bcaaf0eec55d449c74b1af7311c5347",
+ .iv = "beb7a8feae23175e9920b9e2",
+ .ct = "e523e45e26e09f82af160d9965973e933ec5416a5af200872f0a3f5ff9121438",
+ .aad = "cee02585c352bfe634591b2160ed76fadc3d35c76ab99687d4f7d1462d05ee25d94ff565ac77e7d12e911b07cda480e8032e48cb274ca96be27e85af6bfc4309b874f567d2c818fc0d0e91ae36c5123772648c73f7ce4c6490a3",
+ .tag = "3764be1d6efdedb7609fcdfd02c4b012",
+ .pt = "39584163ee47e7bda29badece03463793c3cd6a0afeabd0c45aa6da2000ef275",
+ ],
+ [
+ .count = 12,
+ .key = "b7b21207686125ded8a5763c217962dc",
+ .iv = "ec7be05311b9fa04e4bde222",
+ .ct = "345c41f07f6c6217fc134930ecb9377fa30992d63a0c07148a4fdcfa25484c4b",
+ .aad = "885ed7046e3dba4be59d035a2516e382b07d3d7f3e68d9b654803b1dbd187a14f310209f5b3ffa51dedb59f0afdde54be81c6d8f431e547f8ed205d4c8b8d7d895e5bc49ae7cf304b5944bc01e096e0ab9079c2bbf10b40a6ff0",
+ .tag = "3b0e0bc5aca7d21285473f5e65c4afbb",
+ .fail = true,
+ ],
+ [
+ .count = 13,
+ .key = "0dfa4098fb21873ced3cef3e9b5a5d92",
+ .iv = "3a8a1cf096a5292324c3b890",
+ .ct = "b865ed2baaaa832320688c9da7854be242aba6f69258953b26730698ff08cd9e",
+ .aad = "e4fee49532d867ac44cca79d77c50297f0221d95bb2d668f47a0a49ae0b12bab67332b5380a9914c3952265365b558f94132e6b0586f40778e91cff0d47dad9649f56934934059a82f9fabedab8d27b0be782296d537c2b3a03d",
+ .tag = "6163df5982acc866a8077c82a289fa3e",
+ .pt = "6cd946e61a36eb0b6b3ec580b0c463ac56fe8007906167d74685dc7bf69f0c88",
+ ],
+ [
+ .count = 14,
+ .key = "07fbf81cf98e000695b32bc7b0e2925c",
+ .iv = "67424e386d0bb45d1a7959f5",
+ .ct = "d8f277d9113154b4f54b0d0d717f339c27305254ea3eb87f7cc591a98d48cb31",
+ .aad = "7b34c644170bebb1e851f45ad7c6fc9a125b159f6bc6377d76daf3a4384447ac6c570919ad7ceac660b692d92624202110f85804399492feb2fc0e889e93eba61c4ee59d478aecfc53a88d163064d8e8fb5caf1d2d26aeb87a46",
+ .tag = "8e946decababd58afcec508278f6e95d",
+ .fail = true,
+ ],
+ ][:]
+ ],
+ [
+ .name="aesgcm-dec-iv96-pt408-aad0-tag128-key128",
+ .keylen=128,
+ .ivlen=96,
+ .ptlen=408,
+ .aadlen=0,
+ .taglen=128,
+ .cases=[
+ [
+ .count = 0,
+ .key = "f3c4c058c7f0965a0328f0f011a128e0",
+ .iv = "e96098c39d9aa83522119355",
+ .ct = "b42c25155820564b41c525c6aa8ff4363c7c511917772b9bcd574b0be1f6b4ca2153869ddf0c4f76dfad3aef0a76ce056582f9",
+ .aad = "",
+ .tag = "44331e39b8a66a81591ed155d7d32372",
+ .fail = true,
+ ],
+ [
+ .count = 1,
+ .key = "93ae114052b7985d409a39a40df8c7ee",
+ .iv = "8ad733a4a9b8330690238c42",
+ .ct = "bbb5b672a479afca2b11adb0a4c762b698dd565908fee1d101f6a01d63332c91b85d7f03ac48a477897d512b4572f9042cb7ea",
+ .aad = "",
+ .tag = "4d78bdcb1366fcba02fdccee57e1ff44",
+ .pt = "3f3bb0644eac878b97d990d257f5b36e1793490dbc13fea4efe9822cebba7444cce4dee5a7f5dfdf285f96785792812200c279",
+ ],
+ [
+ .count = 2,
+ .key = "2e6705fc4862967af3aea0785f6da759",
+ .iv = "7d9280f59dc2b98f0195098d",
+ .ct = "30980d2634138ead42c3347b9b3af32f78ffec0d7686b9247f8ef7258b72859276d9d33eb670eafb3ea900c32db9befccfc1d6",
+ .aad = "",
+ .tag = "cbca49ce70d3ddb752dc3b438f2845ba",
+ .pt = "fd1b20d58e51fe93d177db518416e632212dd1effb6b5fcf51bd94234ab96a455d8e3c84ca03b26d58c8867b6a1cc390828ffb",
+ ],
+ [
+ .count = 3,
+ .key = "c36bfc62ae2b4969dbe23b7332eccfe4",
+ .iv = "f9651d42ebf8468eb6e45829",
+ .ct = "f9296beed3d3b573f72cbde4ad832e34e8ef6cf7178e8d2783fff5ec8359daf67df8a70d8f86d2c339f9e1ec59d234e4f61938",
+ .aad = "",
+ .tag = "46ac46b455e9f483a8eedf6ef4b61be1",
+ .pt = "de42199c477b69de2857100395aefb2735c8328331109d647eae535c54200869e7a8bc82f461fc6c474748297c341bd22126fe",
+ ],
+ [
+ .count = 4,
+ .key = "a02b7907be2c2a5f8c40127c27b609cd",
+ .iv = "b5ee4456bee99ab857120d1a",
+ .ct = "0a14bc62326c9af9960b896018d98c792d6e0456435005d65e60d553b4ea733ace7dcfdcef0c7d86a6f3065cab8012a4cb2cb9",
+ .aad = "",
+ .tag = "8fb36293be18a68ae7160fc848cc9cc9",
+ .fail = true,
+ ],
+ [
+ .count = 5,
+ .key = "d3c4f95ee0ff93f67dfd7c6b65786a71",
+ .iv = "18be95d32c908294ba908e76",
+ .ct = "a18dfc65d0d8e9485776623cd0a3bf77d05482eee64e97cbd0882197800611081198439a11e226c3fb819849230f1fca9a89e3",
+ .aad = "",
+ .tag = "0f528349ecbb4bed97e9fe8ce16161bb",
+ .pt = "51727be06b95ed04ec1f411aaf5b214c58f21782cbe9b624cb28229abb8f9d8d673b903c12eb9147c40cc58e81525d86edd6c6",
+ ],
+ [
+ .count = 6,
+ .key = "a2526f5350c42e0772063ec155f1e1d5",
+ .iv = "b4f8c85c0d743a99a6cc87e3",
+ .ct = "48584a611dfbe46c3a7cbdced160032945193cb8dc0d551080d162b47af7da53ef4cb1896fc01a5dcb8e38dd9784b86e804ee3",
+ .aad = "",
+ .tag = "65e48ba3b15b7478b885f8ccb52392f1",
+ .fail = true,
+ ],
+ [
+ .count = 7,
+ .key = "d4c653fd951800ebe9c4a43806f294cd",
+ .iv = "d3f54fcd5d7a85377fff76d5",
+ .ct = "a8464c51b538232eeaafb3c28f92773776bc040e9570cb1041ea69a28570f15bd284acdd2bf2e732d5e37fc4f71a9881e95f32",
+ .aad = "",
+ .tag = "88a2ae3bcd70d70c0652b41623287472",
+ .pt = "38e1591924b8c3e3ae70955767bd33525223d3083245d0dab82bf55f2f9a0cf89eb67ac7fff56790c0a1cfd17dcfdab24fa821",
+ ],
+ [
+ .count = 8,
+ .key = "d925a80f584eddce723da5e2c6dc2225",
+ .iv = "90fa88a5d494154d71186705",
+ .ct = "484049f8c5d49cee54d7a4f31801bf0b3f7b67c2c18e594117d413238f80e45e6322f389aafe7751abd15bec4ff0f6209add28",
+ .aad = "",
+ .tag = "a382b14879dc59d855182f2a324569cf",
+ .fail = true,
+ ],
+ [
+ .count = 9,
+ .key = "dcbb9565d2f07f94a95f7982728f4624",
+ .iv = "a3e76752362e13ee7df5a207",
+ .ct = "5e1789e0a24a72bba8c5f775284cc31243d62ef474db73bf73410be4abf80c860e1470aa98247119e558f13bdc4e9cd802aded",
+ .aad = "",
+ .tag = "1a7bfc1af64c5e08741f1080064f89d1",
+ .fail = true,
+ ],
+ [
+ .count = 10,
+ .key = "838e8ec1da4be60680c2f7a03c050975",
+ .iv = "33a4203c8a85bc83117dbb8a",
+ .ct = "19210a21ef00ba0e17ba8e1d23eca7f8f2e4cdb13c2e3f87a9ca0e361736796fd3720598e8283289aab0a4afafc13a7cff0437",
+ .aad = "",
+ .tag = "692270364f737ab2f31f421a48fb6b8a",
+ .fail = true,
+ ],
+ [
+ .count = 11,
+ .key = "c62f464a146cdfde1b23999bfc27715c",
+ .iv = "5bac8eb5030a81cf2782974c",
+ .ct = "f8407943de543fabd5c6d2c217a2567b895847b3031e46fef6a20b9446b395d3a751633ea14dc49c36805a66eb466e028c0eda",
+ .aad = "",
+ .tag = "150feaaed2ba2ae459f8f0f28fc2c27a",
+ .fail = true,
+ ],
+ [
+ .count = 12,
+ .key = "3a2b2a1f2afd731648fc60c2d4775422",
+ .iv = "9fd376abd09e6599986afb96",
+ .ct = "813a8d7c46d0a3504445dbab48a546cbed968c574645fa696ffa9b5d62ce394ee35a204c62edf8d04c7ef621ed519c3b7a7318",
+ .aad = "",
+ .tag = "f259e62193f1eefdbc6ec1ace305f78f",
+ .fail = true,
+ ],
+ [
+ .count = 13,
+ .key = "1a77d432ea3555b56ce73509f90e4e47",
+ .iv = "c54136dc1525ed4f6dce4ba0",
+ .ct = "33f094e27be6fdf62b901b980471b5e4d19ed7bd1b8ebf5b3f225f3e0e2669e02c74630f43472515806bd3d37b9b20f21870ae",
+ .aad = "",
+ .tag = "d480b1ab8a8f661d907c7d45bd8d2883",
+ .fail = true,
+ ],
+ [
+ .count = 14,
+ .key = "63193b6e66daedb9d566677ca4d3b129",
+ .iv = "313ba09226bee694217f5cbc",
+ .ct = "af18be0edfe1b74fc327d447909347c1e8b22f24eed0c545ac76f2d8d48f3c673b300b1c2cd894455c2232e052f078f0af71f4",
+ .aad = "",
+ .tag = "96183cc5e22937c15b78049d7cab2181",
+ .fail = true,
+ ],
+ ][:]
+ ],
+ [
+ .name="aesgcm-dec-iv96-pt408-aad128-tag128-key128",
+ .keylen=128,
+ .ivlen=96,
+ .ptlen=408,
+ .aadlen=128,
+ .taglen=128,
+ .cases=[
+ [
+ .count = 0,
+ .key = "bc22f3f05cc40db9311e4192966fee92",
+ .iv = "134988e662343c06d3ab83db",
+ .ct = "4c0168ab95d3a10ef25e5924108389365c67d97778995892d9fd46897384af61fc559212b3267e90fe4df7bfd1fbed46f4b9ee",
+ .aad = "10087e6ed81049b509c31d12fee88c64",
+ .tag = "771357958a316f166bd0dacc98ea801a",
+ .pt = "337c1bc992386cf0f957617fe4d5ec1218ae1cc40369305518eb177e9b15c1646b142ff71237efaa58790080cd82e8848b295c",
+ ],
+ [
+ .count = 1,
+ .key = "4384629e9b1686927e8508243be1d01a",
+ .iv = "84ff7f4feddde7d89d370e7d",
+ .ct = "8f385490e9622a6c1009900052385c23442890d2af667b210d012781e62d0de311f2149cc377a490afcc686cd92e7c35dc7e5c",
+ .aad = "a51cebf08d0f293e3a83bea5a9f1cc6d",
+ .tag = "00097982ccc985671477cb1f1a250bd4",
+ .fail = true,
+ ],
+ [
+ .count = 2,
+ .key = "aa1b3a94882b9b9dde8c8099a7af1830",
+ .iv = "d56abb827acd6388f48f7096",
+ .ct = "d145a79b9a97ecf2907ab0372c6eed310cf32e7a269374fba920c99eded54bc03c873fc0acdb895078bb8bb336fcd2662e071f",
+ .aad = "503eb74ed7b0ed14f221d55638fa4fca",
+ .tag = "e0861f6a706b56da1b1fa8f04a14eebb",
+ .pt = "8b9700bbfec195f96f28093002217703970126e4b209e585719c066e5c7eb8c48e7e8e6b3329cf5980eeca49f80bf121de253f",
+ ],
+ [
+ .count = 3,
+ .key = "5a85c2df1f3c0baeba09b8f532cfc8bc",
+ .iv = "9e8dfe8d34ef979508c00cda",
+ .ct = "9887db619566da9fbfa073a667168a85fcb94700ab267d30e3ddac0f8d1ac0f6f7d63ac02d2c28668f933ba080da521032ebd8",
+ .aad = "27eafefcad6eb8a410235ec3969ed11d",
+ .tag = "c84326d0247aa00ff3ba886da1f2c966",
+ .pt = "63ef1aebf25de0e7e35a602e6d86c95dc9ff46ee0223b09b5332cb28a9b0d94486394cd442c93cd854ac54208fe1e1c64257b0",
+ ],
+ [
+ .count = 4,
+ .key = "9cb63a6932a7e7b210b82e854ed2389b",
+ .iv = "7d3498cd4af4387cf747dd50",
+ .ct = "d73bfce17382edd23be968d9da3bc772c59378d842183f4d11c028abfc9eca44a416a96a2058152e0ea83f42bd48ee79ed3acb",
+ .aad = "188164c9a24f8965720392177138f354",
+ .tag = "5ee3c2452ccd78f780b8ffd0329f8df7",
+ .fail = true,
+ ],
+ [
+ .count = 5,
+ .key = "8b87af542edb66d468e9eb02f60685b0",
+ .iv = "fa7f13984e724612b22f4e5e",
+ .ct = "969cd236712e4a06be8c1f1a211f2c8a0a94d8b06bb05c72fbae4ac86ae2afbcb63580bf7261b4fdc829faf97652dbcdf54b3a",
+ .aad = "7e734ddab198244376534bfe5024437f",
+ .tag = "4305efed9cc20237daa32dfb47b1c276",
+ .pt = "1b3898e927cc948ccb340e4ba46ea23095014e055256319ef4d114aa4ae67c520c9da07a0e2152b180505862d4c04eaa67887a",
+ ],
+ [
+ .count = 6,
+ .key = "9f49f4aedf07cd2060cf4d12a7f40e34",
+ .iv = "a52983ca2faf10514d1369e1",
+ .ct = "8df0217ef038eb6c03f3500833c3ac218dbbfe29100b9f48554333dee461b867dafc16089e6ef0c6c4c8684d307a54f0ccedc5",
+ .aad = "3ae716e481e36426214ad512fd607121",
+ .tag = "5bf48a795284ba53f0834940bc155e32",
+ .pt = "fecdaeac7f30ec39a6732a7829b7905141aa50f9ec65dd0efc5acea9349f585d61afaa4c0cb55a60e9b12a8a1fad98ea3e6bda",
+ ],
+ [
+ .count = 7,
+ .key = "c3a4add425cfc13062634ec4926059f0",
+ .iv = "9e79f25c956adfeff8f71ba9",
+ .ct = "fc4a252f4179ddabf4c1cf5837526fec3cfeb3134e6d2cd70f1cf5eaf3beaf8ecb364e4256d529b930f524cd264adff3bb0211",
+ .aad = "e36a19bea0f26f7a7117309d48a47cfa",
+ .tag = "dcb137bd2c88b60a7ca442ccd042061d",
+ .pt = "3c0d5f84159bf11e520b2d1405c5c26fe94a8482da1b420cf6d8df5a536dff7c39cf7bbeffdf60365bf9a1b0bdf35d299d9043",
+ ],
+ [
+ .count = 8,
+ .key = "bf156813577aaed10f105662a2564005",
+ .iv = "2dae894ae0848438f6e7f589",
+ .ct = "fedfec37d41795795c890472db7aa9cc9b59c5c86d6331466e5e5ac023a6f1e2855777f905794138f9b19a20dd4f9339b3c5c5",
+ .aad = "8c7ee403c77c861e6b75ad65f70d6cf5",
+ .tag = "0b50277dd6cb68a185b76d1dc3c0c3ae",
+ .pt = "9bee8e3b0daae03815fee8f548d06725261d1c213e7df2b87211655d60f7a122aa094967d54fc02cb2a51f156fba9294876c56",
+ ],
+ [
+ .count = 9,
+ .key = "1cee4f13145b8ee79c33755c4f60c299",
+ .iv = "90115ee9a8c2fea38fd2b2c0",
+ .ct = "7ccfde4eab711372bb28f5474797afc3066cb2befb84e66520526e8142316b986bba83fd928684c3131a866dc95c977f908dcc",
+ .aad = "b386ba008df273370459643b05e384f8",
+ .tag = "c64979df36723089cb13bcfb2667c16b",
+ .fail = true,
+ ],
+ [
+ .count = 10,
+ .key = "6b6b8a1fda71d168071213ed5f16e3a8",
+ .iv = "cd5cdb482d8d2a850ac528b7",
+ .ct = "cfb2c9aaabf3bcb373104255c6ba7c98bb88e7c446dc5b5caa4118c89c1bcacf1bfc7632d3a59ec954ad1582dc50970a57ea37",
+ .aad = "6ecfc978c3cf0dc721b868af6dd36588",
+ .tag = "87d16126f3b440d792cd4e69070e218a",
+ .fail = true,
+ ],
+ [
+ .count = 11,
+ .key = "aeb9f141348237ab152e0fee7765be89",
+ .iv = "645cba3940f7d8e94d6ab775",
+ .ct = "1db852ce89b10b3ee6dee42b492960be1838ae08e84dc00a70e217a9e83a436c849e7921e76af967e3574d65a915c854fb10ff",
+ .aad = "d3f8f031c70d75e26eb56c3fad82d49d",
+ .tag = "69adcb30c4e12ff4eaf6e8e5ee8123c4",
+ .fail = true,
+ ],
+ [
+ .count = 12,
+ .key = "65dbce79d38150831274a718933b1207",
+ .iv = "f4f72eb6f3195327089dc7bd",
+ .ct = "70f31d645fc671cb4b79ab6ecf265f4ee9cba5febd2f73ceb44a7fe2f028efc8ee30b9eedac5bb7ccc11906e111029ddb3c545",
+ .aad = "6adcab836f1ef8ba1a9a089c5a6f5da3",
+ .tag = "aec413c1e013af99cf8189da009adf63",
+ .fail = true,
+ ],
+ [
+ .count = 13,
+ .key = "d6eccbc171f2b412acaed30238715f60",
+ .iv = "90d0754b0ddf108afe8d199a",
+ .ct = "7c89057bf0c94527b3a63be13a963f76022896f0c98fa364934f71e997dddc09e778b71d009d12df611df0a9ef3cfb944fb86b",
+ .aad = "217f2aedd907a8f86cbcce8d16a13744",
+ .tag = "9e045825b670b964a263c73c9a636427",
+ .pt = "9da6e3f91d5f0ed62e1487bf9bf62ea8dbcfc56827731450a43f347882daa97cfb9ffdc79500bcf1601b397da076218b36cc9f",
+ ],
+ [
+ .count = 14,
+ .key = "89b512544b5f39266fbbc0a770770d7a",
+ .iv = "97748e40699bf90abc46276e",
+ .ct = "e0816c13ef928eb00f07444864fc7279b617543282a7e7c8873fdd352411afe457fbb4ec41e68685742948dda2cd8e09104110",
+ .aad = "1192973746283ab4657e19cd63284dcd",
+ .tag = "136835fd131d43836ff2de3efabef747",
+ .pt = "213f23341507ed5a2c93c1ef2007bee82786ab109f8d04e6cfeaade1bd895499f0661ae095132037200278a9bc3460a0716cff",
+ ],
+ ][:]
+ ],
+ [
+ .name="aesgcm-dec-iv96-pt408-aad160-tag128-key128",
+ .keylen=128,
+ .ivlen=96,
+ .ptlen=408,
+ .aadlen=160,
+ .taglen=128,
+ .cases=[
+ [
+ .count = 0,
+ .key = "af57f42c60c0fc5a09adb81ab86ca1c3",
+ .iv = "a2dc01871f37025dc0fc9a79",
+ .ct = "b9a535864f48ea7b6b1367914978f9bfa087d854bb0e269bed8d279d2eea1210e48947338b22f9bad09093276a331e9c79c7f4",
+ .aad = "41dc38988945fcb44faf2ef72d0061289ef8efd8",
+ .tag = "4f71e72bde0018f555c5adcce062e005",
+ .pt = "3803a0727eeb0ade441e0ec107161ded2d425ec0d102f21f51bf2cf9947c7ec4aa72795b2f69b041596e8817d0a3c16f8fadeb",
+ ],
+ [
+ .count = 1,
+ .key = "ebc753e5422b377d3cb64b58ffa41b61",
+ .iv = "2e1821efaced9acf1f241c9b",
+ .ct = "069567190554e9ab2b50a4e1fbf9c147340a5025fdbd201929834eaf6532325899ccb9f401823e04b05817243d2142a3589878",
+ .aad = "b9673412fd4f88ba0e920f46dd6438ff791d8eef",
+ .tag = "534d9234d2351cf30e565de47baece0b",
+ .pt = "39077edb35e9c5a4b1e4c2a6b9bb1fce77f00f5023af40333d6d699014c2bcf4209c18353a18017f5b36bfc00b1f6dcb7ed485",
+ ],
+ [
+ .count = 2,
+ .key = "52bdbbf9cf477f187ec010589cb39d58",
+ .iv = "d3be36d3393134951d324b31",
+ .ct = "700188da144fa692cf46e4a8499510a53d90903c967f7f13e8a1bd8151a74adc4fe63e32b992760b3a5f99e9a47838867000a9",
+ .aad = "93c4fc6a4135f54d640b0c976bf755a06a292c33",
+ .tag = "8ca4e38aa3dfa6b1d0297021ccf3ea5f",
+ .fail = true,
+ ],
+ [
+ .count = 3,
+ .key = "231025c304c626f119964a708328d25a",
+ .iv = "9f60d5a70a0a1452c50d756f",
+ .ct = "0dfe5a02709ec9fc6515501f16df29c512832f4f3da7491a8c1f1e149d131bd5ca05b803c8ad15bca743cb2c6308281857b8bf",
+ .aad = "7e2b3efd33751fb7df561fee3f5f141433ed3b19",
+ .tag = "42ef3d08f38e9825b8800e56f1194ee9",
+ .fail = true,
+ ],
+ [
+ .count = 4,
+ .key = "cb3354e8dd509bfeffcd8b7da33885d7",
+ .iv = "d794deec5973503dda19646d",
+ .ct = "20e1eb1572308afca40316934df2bd1d55131aa5f9abc06ebeddcf20ab66a6dfb562f54b7490fcb9d7d9bcd52f142edfa3f676",
+ .aad = "0d785ef9026b7e6a109adbaa7842a4bdc5461875",
+ .tag = "ae92113005dddaf3e80ea809bd8fe899",
+ .pt = "c727894b7a507d5ab124a9fb14495c1d5842772e0d339ace3463a481967b0d7bfc16756ed18ac873d9119eedaa20bdea170dc8",
+ ],
+ [
+ .count = 5,
+ .key = "5a577dcb0d6929718fbdace24c03fb2e",
+ .iv = "54e4b51f37adb3d6696c58b3",
+ .ct = "1712451494cc4dd30f779bc11f20c71683354235c69a1e3985e4492ec3c692781c5939f8bb73f14dbba37ce0ee640e24aa8a4a",
+ .aad = "c019aae892687a88946ed08115681ec79764369a",
+ .tag = "9e201c975e3a938074a35c7e51a0d38a",
+ .pt = "a457674bb83b3210e738c169b412f9a76ce77927265b1cb4f80fd336603a8363f3a287403969871c0d4085eb39a045e2b961c8",
+ ],
+ [
+ .count = 6,
+ .key = "04cbdcca86b9353d25c3d3c2b340453f",
+ .iv = "fb594bde6c7da88bb4268c6b",
+ .ct = "22a7e51fc2b61ccd6367b3f4d519c725012db48834ba5e4ac89f7a27238eda54086cda0238de9abdab8231013e6692c17bd2d3",
+ .aad = "39b9ab5ac29002de6c6f48fb744a14b957e618d3",
+ .tag = "f870268f770a3bbe7c3347b9f9b08f1e",
+ .pt = "0f8527090a793da125cc3a4aed04b5a1abeb0d09da7602982c686936734f874888b2f4b8c37c526b0b2005a2dc78dba7c8c47d",
+ ],
+ [
+ .count = 7,
+ .key = "4d2fc6325a7beda38f12f9c4dae62e15",
+ .iv = "774d52fd076c1d1707e024b0",
+ .ct = "67a43f43fce9fb7303b0ec4544887d70c811c0b1dfc923ab567bccea494d0913ff40b7cb70d89e7b5096fa942d5747f8c245dc",
+ .aad = "225e4c071fb10cf62d8529b5af30c29e29fafd30",
+ .tag = "97f586f1c395bbb05be58b891c48fc43",
+ .pt = "13ab3fb2eb0d6d37637a0a1761911addde76f9b451d16c8e0dd562b5c4ffd8e59e5ac08d9321b9660605cbfb06f33ccaaeabc1",
+ ],
+ [
+ .count = 8,
+ .key = "53a2ed1d225b63d4bb45b5225d8fa21e",
+ .iv = "daacea4f24319dee2afd9cec",
+ .ct = "d58eaaf85adccb60a952dca9b72d8144eeac455ad9c3d558e64220669e6333d3e01d8d7f74cfca6d15480d564d2acf6110dbaf",
+ .aad = "ac25e4ada8fb3160b2bb5b445f35b885ab0b42de",
+ .tag = "dad2f9fae9071ae8fb21f3f2d7bf4ee1",
+ .pt = "1f6666966c94ed3f2c4586ea8f6b9bfede55a396c6e4cdc014ba93b272d52c42081aa8272552d4a6862a1543439042e3656312",
+ ],
+ [
+ .count = 9,
+ .key = "441e2093780b7466a736cf9fd56f505e",
+ .iv = "29852c4f9e8e560bebda507f",
+ .ct = "3f86e4663af1108480e9ebfb1c4ff8cbbf2f340658b91953fa51bad044b3e900e38e66475115c203f9aab0553efbe7c8d3488d",
+ .aad = "cb79774fe3859d571750a721da0d0d4cde40a703",
+ .tag = "35d94561193fed46b6468672ed06f848",
+ .fail = true,
+ ],
+ [
+ .count = 10,
+ .key = "72e26b401f5edbab8d52d85b953c9740",
+ .iv = "7bdee59ca460dcd9a9026c00",
+ .ct = "326d6aa5c731fe350872edd4851cef3f52d8b23e8d21eadd6cde94266644393a033b8188f8d4991e6af8896cc90dfb14133ffa",
+ .aad = "c87e5464decf9e311e1a53fc7c2e58ce3c2cdfd5",
+ .tag = "cc72145ec7d743669f82ffcff4477431",
+ .fail = true,
+ ],
+ [
+ .count = 11,
+ .key = "8b7e68eb7c5af5667e107b15b024c6dd",
+ .iv = "3032706bb97a57db2c12f516",
+ .ct = "7e51f0246c2141d3056e029f010f137d962db5f2b75cea3025641b9f257b0cf368ac5af5386a652e4a344ce87a3ed7ea13f4b1",
+ .aad = "8e7443bd5391b0d794ca731faf0693b5c1bd322e",
+ .tag = "bd958335e45dfe08a14ad3493fcf684f",
+ .pt = "104d820cd5bb4ef3d6c8da38aaf87e918319bb9c6855141a5d347f34fc99f17d9099d75a55a9af4d91c3b606d5d681906fa645",
+ ],
+ [
+ .count = 12,
+ .key = "6be475335ebfac4a8153e2933df64728",
+ .iv = "2ce9f60a87700b3cc2aa4bd6",
+ .ct = "94450c6fcbc69723e5099e8f4d1687ef30d22b53e75dfb1d64a66b5a714c38841bc02e4d1a1d543a29d4421622605be9898c35",
+ .aad = "4a47b8de3f900d31b02c341fa6e93bf7d7fed8b6",
+ .tag = "0e2a619de3645b78f8d88b4d41bb7fee",
+ .fail = true,
+ ],
+ [
+ .count = 13,
+ .key = "1e47d62f60c4f817e60b4daff62ff0bf",
+ .iv = "ac749f9ae55bc1fbc8d18f8d",
+ .ct = "81aeac511f589d5f7b9a63c98188faa88e013fb2efea246627386f6124285fc9f5af0fc9a7dd66dcbfa72a08e0dd205a4f54e0",
+ .aad = "1dbe80d44a17dd3c9717436485e946edf10f5a94",
+ .tag = "3eb79932f3c5c81fe7a0b25f9a862820",
+ .fail = true,
+ ],
+ [
+ .count = 14,
+ .key = "94e5bfcb62bf58e4d22fa7e111f36ded",
+ .iv = "a1440994c67b449ab1185996",
+ .ct = "a33bff622bd29e2d32b0860c6bef2fa7b0d9a108d06af8b41de8467ab063ab0363c576ec8b085b8ff04eafd997607d651e607b",
+ .aad = "d56056f606021bda6c9d3e47114650f08c4326a7",
+ .tag = "69ccda69723a8e596e0ed6db65f19257",
+ .pt = "e376d7e1466e559a8e535c06a8cd609a8075c373b7b2eda79396c9b7a7a2fd55b5d0d3c7fbca64f5e40c553865d697a52a242d",
+ ],
+ ][:]
+ ],
+ [
+ .name="aesgcm-dec-iv96-pt408-aad384-tag128-key128",
+ .keylen=128,
+ .ivlen=96,
+ .ptlen=408,
+ .aadlen=384,
+ .taglen=128,
+ .cases=[
+ [
+ .count = 0,
+ .key = "e7c650a8f64a900857eaf8d95c49a807",
+ .iv = "961a0b83a36b79acc1494da5",
+ .ct = "70954661360ee1dcc5ea22918fa89bbcf56aa6ded04b22fccff799d773833617c9aa7ddb0ab9c170d6a44769bce9f7fe287c68",
+ .aad = "da9ff7c1529f9cb75c88cd890c9a1af493db5fe8148c4687984c070442c5d501434bbaab1dae06cec6de0606d59da3d0",
+ .tag = "a0962c9259e7d4a9a21e9328e93c754c",
+ .fail = true,
+ ],
+ [
+ .count = 1,
+ .key = "f0305c7b513960533519473976f02beb",
+ .iv = "1a7f6ea0e6c9aa5cf8b78b09",
+ .ct = "30043bcbe2177ab25e4b00a92ee1cd80e9daaea0bc0a827fc5fcb84e7b07be6395582a5a14e768dde80a20dae0a8b1d8d1d29b",
+ .aad = "7e2071cc1c70719143981de543cd28dbceb92de0d6021bda4417e7b6417938b126632ecff6e00766e5d0aad3d6f06811",
+ .tag = "796c41624f6c3cab762380d21ab6130b",
+ .pt = "e5fc990c0739e05bd4655871c7401128117737a11d520372239ab723f7fde78dc4212ac565ee5ee100a014dbb71ea13cdb08eb",
+ ],
+ [
+ .count = 2,
+ .key = "adbe83a792ac133ff5088b49dc8fc54c",
+ .iv = "d9ff7ed76c6c34d956917a8e",
+ .ct = "e12d324af2e723722fb5ace9da7c3dc0e673d2ee294e414b5abbbdd2dd4fc688e5dd6d2e961533e9083b6ae8e712b7b23339a4",
+ .aad = "a81f2b8c138d3e629b6e06a9563e75ac5bf024fc53556dbb9e008d9fa551835566d72b15b39f1ea0d9d6a53ddbd488c8",
+ .tag = "6fe3139f1f75228545db7fee6965fb17",
+ .pt = "e76f356343be3e1fc9e2bd0f9dd770c876122ddf1d6270128a74ca8394ba47531e82e13b0c9f028fae18110f2ac673de832085",
+ ],
+ [
+ .count = 3,
+ .key = "32406fc5ecd36e327c45c9e783870b54",
+ .iv = "22e95c98f482982ea0f189c8",
+ .ct = "e8396f91e757cc47385e2d45a0dd8a3fa34350a9d1e0cabadbe73ea2b17b866c7cce8df163a802a7e207e80fe6f11d15f2e483",
+ .aad = "635ba2c5301e218182da81805de97b2aab5f163397d319c4548dee5ca7fb4a6c601f667da3c542347890e267f94d613e",
+ .tag = "630431ebd61f8f2e01639d2e6cf3acc8",
+ .pt = "3d49646a76dafcb7ff78aca9415207b107afe751b2cebc1757cfc74402f15f89c36ebad397fa033d21c26ece33533c4d80897b",
+ ],
+ [
+ .count = 4,
+ .key = "8e184c0f49d263a9cacdb83821a33c98",
+ .iv = "06d8f6969a2e0569ee0f7872",
+ .ct = "4b8497667cca8784a01300f2869aceeb6161f60f6073f11470a14b4b2f905cd9705ea3938fcaff3f2308d5e9f3aa7f88bdb808",
+ .aad = "655730e35b8f91ec3d6c083baab2751c7dabc0a4d29d0bed6453b2ce8a468cc0f0bac9000f8a86e468fdd1623901994d",
+ .tag = "9d919fa4c13f38c9134d7893d832fd30",
+ .fail = true,
+ ],
+ [
+ .count = 5,
+ .key = "5d697b8c61784d02cda780887e57fca0",
+ .iv = "6a7aa3548a1a23c91b8785c5",
+ .ct = "654855265d5b61777a7c0a8b8239c74cc9af1aefbe80e76b415a17e148aae92ee3c9fdf391dc22fe1d77805cf18faf0be54823",
+ .aad = "57add18eadebfe0651f90699e1eebf168447a6d61db412f72acadf77f8dc5f27e0ca9bb5e5a8d02ad572782684647e23",
+ .tag = "813db300a2a25fc1791e98e7d8852ee6",
+ .fail = true,
+ ],
+ [
+ .count = 6,
+ .key = "d7fbc15e1a47d60e64a15933eab1af36",
+ .iv = "b02845c45a33f58c5c33e729",
+ .ct = "259f6299e382bfcbd8b217c2fed076799deb9abf3eb59b58f07f92121b7dfaf9d37130ae708898c281ffb1b22d8ea08c16c674",
+ .aad = "ecbbe60c54a60414cc5f6da3634d03c0b78ad70dcb9902edb4285ccc148f7d30bcd14a1d8a8dd643b50cde910fde964a",
+ .tag = "c23e799000d36b0456c7ec1cf6b28285",
+ .pt = "465a3617259fc4fce31df80aa4f7254065cb7c9e1b61692c42c3ec5bb8c13852c9b826ac886d86802d92bb63d5a0a3ad60c6a8",
+ ],
+ [
+ .count = 7,
+ .key = "3a90b1433b1c18f9e2d284ac1022add8",
+ .iv = "99c814d63bb4835663fe8b0a",
+ .ct = "5fa507b9a068a16dd098223db38600ee3e2a4cfe7ed0d484fc24602062fe3118b112a0cb7d960616d4954f0f1b6bba6bdaf0d6",
+ .aad = "7e61eaa0442e1ac7fe336036ebab57140f5648f44a11968d63ee287de2cb01c5b1c808a20690ce0406104859a3ea462b",
+ .tag = "eb35c593e4641aa9f075e380645940d6",
+ .fail = true,
+ ],
+ [
+ .count = 8,
+ .key = "0e5d672e3e3abae3efccdd6302b63075",
+ .iv = "41ce593eec39b3360741f5a7",
+ .ct = "f15d84949a7a6233ea7c6389c60c3be39e727c58fe86b63aa5101385bba8dd152ebeddcaccb8fda44e9923c4a27ab63700d60a",
+ .aad = "12791dfc8a7fbfcef959cc1105e7017c837da1cca1dd8499ede10fad46323f752203c5e3213818ba751a5fb7a33d24ff",
+ .tag = "cef08ec966cee8be9904fb0f7014e455",
+ .pt = "3bec21655c5b7727e82b9c14e495002fee0d0abcece86da9e5ed9361ab4e1b52db04630b3e2d2317f117712a213df4a2766b70",
+ ],
+ [
+ .count = 9,
+ .key = "5b4309a19a3ff4f5a2f3f50ff173553d",
+ .iv = "24732b76850d64df84b0b543",
+ .ct = "fcfd435b25812031ce0a2b1114083fd5d0e642ed9472f9794c65dc2e1ec2b69dfaede399041c895a150fa02794b307b1113f67",
+ .aad = "e19620455af6630e2cdc16a184c6418dff96372fb31b5bad6c4c40e824a8a0f9ffcb9557269d3bd808582f99765997af",
+ .tag = "1b1ff7b4ff45ab1c318371f860c21ee2",
+ .fail = true,
+ ],
+ [
+ .count = 10,
+ .key = "012e3a4a112fec5b012a8a740d528859",
+ .iv = "7cb272d50f410acb61b0460b",
+ .ct = "df42e49d5e42488b28ec32a1e2c13f49b018b94e268b8529d2db0cdddf7064674fcd347a6ad4ae6bc0b935d6820dafe1a1e037",
+ .aad = "27d30a53a8c009f01cc7eeacd5a2bd479280cf31a2c0e6c854b5bcbc0517cad3f135bb4799c9e2e1e99905bd649b251f",
+ .tag = "c62506c34f7ccfa41a50a389a7b57fe2",
+ .fail = true,
+ ],
+ [
+ .count = 11,
+ .key = "d1a132ef84f48fea7f106e6d444ca25e",
+ .iv = "9c9725e2bab366dd9004338a",
+ .ct = "8ac638ccd1b4e074957e08fbc4f89a703b44c204ac15c0a8380c72536e62a7056e47f3e2096ccecd837c55e00e84e1ea31323d",
+ .aad = "d6a4c524d726502c3e726d6c8aaf373b390e4300a3e7ea74c21bedd9e5731575060e8a85922ae3c7b317a18f1a6331b7",
+ .tag = "b03a4e723b8ecc24422ed39e0d7cbfc8",
+ .pt = "9eb690978cf06c5df315e63633be02f8d9539bc4aaa98e7e9b6dde4cc4fecde3f53b82d7b614a2e03e1df21e887cabca843175",
+ ],
+ [
+ .count = 12,
+ .key = "d85c71da4700d540319eb4f19bbe7654",
+ .iv = "18aaf265066ade903c82dcee",
+ .ct = "e97090cca858cdaae5d746dfbe947f16fb963beb1bd85aa1006a848e5020ef70de4f3af85c044423cade8f70cbe3d5131f607d",
+ .aad = "15459e364082ffde14c08f91a7b42d39f1b075622f8ec0c7f0773b973990af721cd907bd7fd6c7f0f1aefc05a7aec27c",
+ .tag = "f5955ad7b20b9648218c71acf9a074cb",
+ .pt = "148b067d82552d721bd77765710d62749c5bc7c079360c051bc9be9ae49e26ff98fa9aa39e585843ce06208ff630d139972bfb",
+ ],
+ [
+ .count = 13,
+ .key = "ec3bf7626ac29db644ddc20ca1a40ebf",
+ .iv = "daae780f721d7bcecf1f2cb4",
+ .ct = "75ba0d138246649194d30e868f72680eeecf4b825b40e977f8cd9e38437f8e59900323a07a7f363470d3f77f0938481e856d6b",
+ .aad = "50f2ab57728b146eb972d2fbe76d6d404a43aa990d10192820c4aa871e78ecd1cebc16700f2416c0512cbdda16642c32",
+ .tag = "b4137053c3913db5e0ff7bbb00cb9fd5",
+ .pt = "092d254107607fbd8bc2e23035d77ebc144bbd52758c1a691951420a10f07cb00566d2f6b72f022cf83b30645aff957aeca8b2",
+ ],
+ [
+ .count = 14,
+ .key = "36a23edc0f006933c99cc124e530dc7f",
+ .iv = "f13bb10b0da13f7e9d32f585",
+ .ct = "32f1b95f21c42dc13dad69ff061a6fc809809f91ac11d484f309553a6692107eb8982d0e48f2726c1c96ecdd2f1579e9bafa62",
+ .aad = "02c06615358ca90d1585333e35504b2fc5370d2bf4a5797a2c1f991fda06135cb13e71e647abb4def56036de838ebc96",
+ .tag = "8703b4a4fa637b16d1a36cc5028716fe",
+ .pt = "9da63166b633b5c9f31f5d0869594960de63570170e83530d796e78f81ed579a74d28d3cb9726f6c6037548f3924bc778c7f2f",
+ ],
+ ][:]
+ ],
+ [
+ .name="aesgcm-dec-iv96-pt408-aad720-tag128-key128",
+ .keylen=128,
+ .ivlen=96,
+ .ptlen=408,
+ .aadlen=720,
+ .taglen=128,
+ .cases=[
+ [
+ .count = 0,
+ .key = "da2bb7d581493d692380c77105590201",
+ .iv = "44aa3e7856ca279d2eb020c6",
+ .ct = "9290d430c9e89c37f0446dbd620c9a6b34b1274aeb6f911f75867efcf95b6feda69f1af4ee16c761b3c9aeac3da03aa9889c88",
+ .aad = "4cd171b23bddb3a53cdf959d5c1710b481eb3785a90eb20a2345ee00d0bb7868c367ab12e6f4dd1dee72af4eee1d197777d1d6499cc541f34edbf45cda6ef90b3c024f9272d72ec1909fb8fba7db88a4d6f7d3d925980f9f9f72",
+ .tag = "9e3ac938d3eb0cadd6f5c9e35d22ba38",
+ .pt = "9bbf4c1a2742f6ac80cb4e8a052e4a8f4f07c43602361355b717381edf9fabd4cb7e3ad65dbd1378b196ac270588dd0621f642",
+ ],
+ [
+ .count = 1,
+ .key = "d74e4958717a9d5c0e235b76a926cae8",
+ .iv = "0b7471141e0c70b1995fd7b1",
+ .ct = "e701c57d2330bf066f9ff8cf3ca4343cafe4894651cd199bdaaa681ba486b4a65c5a22b0f1420be29ea547d42c713bc6af66aa",
+ .aad = "4a42b7aae8c245c6f1598a395316e4b8484dbd6e64648d5e302021b1d3fa0a38f46e22bd9c8080b863dc0016482538a8562a4bd0ba84edbe2697c76fd039527ac179ec5506cf34a6039312774cedebf4961f3978b14a26509f96",
+ .tag = "e192c23cb036f0b31592989119eed55d",
+ .pt = "840d9fb95e32559fb3602e48590280a172ca36d9b49ab69510f5bd552bfab7a306f85ff0a34bc305b88b804c60b90add594a17",
+ ],
+ [
+ .count = 2,
+ .key = "1986310c725ac94ecfe6422e75fc3ee7",
+ .iv = "93ec4214fa8e6dc4e3afc775",
+ .ct = "b178ec72f85a311ac4168f42a4b2c23113fbea4b85f4b9dabb74e143eb1b8b0a361e0243edfd365b90d5b325950df0ada058f9",
+ .aad = "e80b88e62c49c958b5e0b8b54f532d9ff6aa84c8a40132e93e55b59fc24e8decf28463139f155d1e8ce4ee76aaeefcd245baa0fc519f83a5fb9ad9aa40c4b21126013f576c4272c2cb136c8fd091cc4539877a5d1e72d607f960",
+ .tag = "8b347853f11d75e81e8a95010be81f17",
+ .fail = true,
+ ],
+ [
+ .count = 3,
+ .key = "e765831739df79cad4271c8b97012b87",
+ .iv = "e02b84f657f30fcef55db39c",
+ .ct = "c22a920729745e6033fb0a139fb84549125701d90ac568dfb1117461380959be61949a2ff8ab5044c448c5fe081253e639528e",
+ .aad = "3b6a16b461a8aa599ea02a63ac7e57ef9acfed69dc75ec7886e902d4b8dc39913f5ef645e1c46251b144b5d6024c6a1a3c330aa7f57b8a1c55bcd918661583d970c33733ddde3ef1c5ea7ac8eeb67021ba47a904d11308824832",
+ .tag = "aa49deb346952540a11b5af0d8ae2bd4",
+ .fail = true,
+ ],
+ [
+ .count = 4,
+ .key = "0f7cd5df675edaf66c8b7b0ac3d2798c",
+ .iv = "4085ea5c6359da0cda2e6028",
+ .ct = "19bf82169fee58fd9054b4729835f5d6141a39819e9ab6f050335dc6af662842b2a990b12a2f75546b56bf578832b0236a2313",
+ .aad = "bf65373999ed6576780dabef2361be4713486358ffc9ae08ef91b517b02cfc9fd71a57eb49a02fb209726a21e5a2ec02c976a96e60f795559225b1515876400650d504dc6013aef6a92b41f952c88fc8aa0746cb0e3852f5a00e",
+ .tag = "0ff48571e381418cfcaa0cc13cc178bc",
+ .fail = true,
+ ],
+ [
+ .count = 5,
+ .key = "7046ce2cfad031f8564d7060f7b9fcbe",
+ .iv = "be584d2d74c2734ee05dde5d",
+ .ct = "7652219e8315b2914c3cddabf28810169ab64d552da2553edad00d016e03d5ea1a540605c1b5d15f0f533fdf8a67a8233c65b7",
+ .aad = "b9856b2c5b261037bf8629688f06a415a162ba27c44976256d87d61a965bfd94b4a29b2b553abb5fca0a93739f84a60149cf1cf3db63fe043e1e292b1834cc48c47e816fd8fb059f909d17769f316388528b1f8246e3708c1c1f",
+ .tag = "3f72b336ae622971c66ec23999dee1bb",
+ .pt = "cbf47b4cf3602ee4718806d92d79d550cc58108fc6e7384fd607eb2839f1510856314bef516101c1ba0bf9013c3223a40c7566",
+ ],
+ [
+ .count = 6,
+ .key = "11338a7a431e3c16f0e5d265ca619735",
+ .iv = "3b355d853a4fee0690be45e9",
+ .ct = "ff4d5100b25581129f8d50bbdb8e84ab08b52c87d71019d552ba6cda7c80da584f2d5a7e17ca0667dd578e099852389241d5c8",
+ .aad = "e417b81988f7e2f3d2efffeca7e061fb865526a8067e8253851ae8828f9f027fb380a711d1db671bda7266fe779394ba0eb1d02d1f99bd0eacdddab57d9d29c4db5e863fd53b000a11b3fc7c1497fe9cc63a94d5e3c3a3856721",
+ .tag = "42939c00e6b469db15b9fd47e9153005",
+ .pt = "8a6a9fbf3e72b1390d665424d1d2e706384ff1db8c5e309b69a27448bd1750a038c2c25acda988ec1dbed5f24fa8c44199146f",
+ ],
+ [
+ .count = 7,
+ .key = "172dfc179211c31e055c149c8c23ec9e",
+ .iv = "6f32ba04972c3570b11d1a1b",
+ .ct = "eda182e3eb20281807e041f14cb7e26e933b9691db457a3239213b3fcd885d421a737207a20ae3c30bd9fbfd9bf85f2bf93cfb",
+ .aad = "6b9656e6c07bca3540eb334703a3b110447e55a9f47b3513e00e029aec6245a7a55e51b28d9afa27b1ac2c5639f02c64810a5212a71582438f691653356c3caedc9efe29db375af29d15eb473786b2afca37b3400734d9d103fa",
+ .tag = "8e404527995c65f9936efad88fee1b4e",
+ .fail = true,
+ ],
+ [
+ .count = 8,
+ .key = "c74c96c514b09cf729cd0bb21c4eb0c6",
+ .iv = "45b1d4a0e56d7e24e91b84e0",
+ .ct = "ad3a0d8bccb0f2fd773a67b4cbd7b4f8ca523191d5a93aabb8f62be100701febc66cd2adf162d4d8cd9abf5ee2f03cbcbeef30",
+ .aad = "58ea828b2ab805b1d262772161c26c452b545ae75335fb0dcd904ec1f1f7125984d9c59c03b1ae30dd7910b0ea4e1a5383fea414111154d916f4766d0cd8542d3ee0fbf55398fcaf0a8858a542b12feeb277651d019ceeae6eaf",
+ .tag = "da9dc47d559516d2ba43cb78eb218d29",
+ .fail = true,
+ ],
+ [
+ .count = 9,
+ .key = "e45d100fe08f2df7106fb7f5a69ab9fd",
+ .iv = "89cb5592e015c15268fa6c74",
+ .ct = "a3e6d97d398b6f8d1acb9d45c0fb66b89cc8f8c034fb77b4cf50da3fd8b7521a6eb5f7bf4a6df703a125a43a95f7d6679cc2b5",
+ .aad = "1c9293292c44aa0535d7e3cf55345272c994d1c7e4af05b666ab80dae87d831685ebf706900efa1662bed1deca81ae2ab1aeb58f40030eca375ef1765d7fa196a2ba72d1d7dfb751f48e00d8b607ba1ea900f7fd4d1dd6169235",
+ .tag = "1d61d7db1d37bceb7de98bd76a736d45",
+ .pt = "ea9b8523fd5ba55c93ff32347d491220b3984cff39d145ca6625f4cc7b01b417776a2e7c4216b1385f8191667a333efaf00343",
+ ],
+ [
+ .count = 10,
+ .key = "2d0b0ccf8f6e955a49a8a6e525c6841d",
+ .iv = "086d5a3f6590e8f7696e6ca3",
+ .ct = "f4c9c513a49a7a98fcde6c2f380bac70158a5c772cb334c0defb10399c2741b3be0fb06242808b1c4d3941dd0f0c6337fe5183",
+ .aad = "2f697a4535c68faccddc970f403103d69590661bdc196e064542fb1d6663d47a55f8b25c71dd16ea36c53a8caa8d2ed30b49efdf1794c2f13e6e5cc3ab81832c6b63c1862bcb589a7af0bca5f6647521556fa104713c7b0f4237",
+ .tag = "9deb38ad834d4e0788a113f01163a2c1",
+ .fail = true,
+ ],
+ [
+ .count = 11,
+ .key = "842f74526892dbea464884041fd1176f",
+ .iv = "8b2c836bb2306aeaff793bfe",
+ .ct = "79c1ab6299d187b7513b996807b6484817d39899eb9c87845b2c7b13edca01a8f5ab96f6546b6f921a89ab5624cab507b10f35",
+ .aad = "78aa908eef930e05c8491dbc093ad689ccbdf6cdb0321ee0beb7e73dd199f6db81b5ceb26bad8bf0015c05543ca3dba582fbb8a816430397159491c20c17dbf303c3981275eea91be0f8d0cffe7be53418802ce35bc6ebdf190a",
+ .tag = "1b1b94ad78dbe7c286f87f80394a519b",
+ .fail = true,
+ ],
+ [
+ .count = 12,
+ .key = "f2dc68a0aaef843b142d1ea02a83ddb9",
+ .iv = "6e8045bb7cddcde4945723ed",
+ .ct = "47b824727193d179b279e7ff90c1848f721d5ddee2e7b9c680e24a9f8b284ddc702bc4b3d7951a6574b000bb725ba34c444259",
+ .aad = "a50e9bed28509b594943c6dda18abf26e21e1b43b7b3377d00dcdc27fe5d9af001d63df3dc177b86c41601b982cf5bb064e5b1383d4bb3a1891b418fc665ab7c165d3033af0c971fc368f3f40b3b3de35377b1945fa582b85c70",
+ .tag = "a6ec986694fed00ff3fa689487158ce2",
+ .pt = "eddb4801aa6fbdaae5dd436a958e5771f850f81f1435cb6d41a22bf0b0a2a3b453874145861d3d1e65bb2d1d3b2b7a458b8c6e",
+ ],
+ [
+ .count = 13,
+ .key = "be23a5fcec16a1ab734e914d52a38918",
+ .iv = "0ca9634183e4f07b46b6cfb4",
+ .ct = "9256f9cac94ed76011454a96f91deb5c75516b3778e66a948618cdacab369303ddbc5e159b7eaa669ed436aa9931bc1462d754",
+ .aad = "e2cabc6ccf6b078b370aaae412ba9ac810246938a4ed0e8d4aa9f05347095650abbf773efa42a2447886620e31982ec9aa0ec24152f3d551c6b66759742f7abc5c01325bfeecc8473bde40969fb0c82949393fa232a9c82ebb72",
+ .tag = "91d35d8f10a9b02a710d142ea695363d",
+ .pt = "b04e7595841a8fc99d19a7bdb7e08d687fa9b3475132a79d3441a228d129ccf2d3068c47173775b696f61d9040acbbd72927d3",
+ ],
+ [
+ .count = 14,
+ .key = "0658fca0a449d0b2bd1a56a0bb582f81",
+ .iv = "12731761ca8bb0f266d66354",
+ .ct = "a26a3749820ab45b0e254a9de5e7863b6bf45139c4b981b57c14db59d1affd838e2ac4ce397145fae610a10ab1a0fa62d2fba7",
+ .aad = "67128c67b6ef6f8245fcd3e191ee9e37072252fec8e4dcc385fdca7bf19835f5c1f43058830ace68af6bead5090b647b727a3fb6806266df6070133ecf96b1cafed543d3c9e9aea6f82ffa3539e5105abe3a8fe8bf184ae6398d",
+ .tag = "64ecdd3e2b77a5eef9444bdfb5a8e7df",
+ .fail = true,
+ ],
+ ][:]
+ ],
+ [
+ .name="aesgcm-dec-iv8-pt0-aad0-tag128-key128",
+ .keylen=128,
+ .ivlen=8,
+ .ptlen=0,
+ .aadlen=0,
+ .taglen=128,
+ .cases=[
+ [
+ .count = 0,
+ .key = "89073fe1cf46069f57eb687be3479f14",
+ .iv = "6d",
+ .ct = "",
+ .aad = "",
+ .tag = "d6b98208152e9f3f7033c9ecbe1c8410",
+ .pt = "",
+ ],
+ [
+ .count = 1,
+ .key = "beacd058ba408f1362740b249b042a21",
+ .iv = "24",
+ .ct = "",
+ .aad = "",
+ .tag = "076b6ffcd0c53cfe30ab3db51c543fa3",
+ .pt = "",
+ ],
+ [
+ .count = 2,
+ .key = "a37a3401be8b9f7987f7d70c262b5000",
+ .iv = "f2",
+ .ct = "",
+ .aad = "",
+ .tag = "aba6369342fc23017fa789ec2ff12f9f",
+ .fail = true,
+ ],
+ [
+ .count = 3,
+ .key = "c85332374584ac40ba3021c627687d88",
+ .iv = "64",
+ .ct = "",
+ .aad = "",
+ .tag = "56b3571e17ddfeb9fe1686d625c50a83",
+ .fail = true,
+ ],
+ [
+ .count = 4,
+ .key = "993445b6f8806d2c95c66ad98b814ec0",
+ .iv = "d7",
+ .ct = "",
+ .aad = "",
+ .tag = "3c97203e4bcbde4e15f5978c50a72d4d",
+ .pt = "",
+ ],
+ [
+ .count = 5,
+ .key = "bd2238151204ee2104000969a4f05dd9",
+ .iv = "17",
+ .ct = "",
+ .aad = "",
+ .tag = "ac154f19773dfbd8d97e56baaf284379",
+ .pt = "",
+ ],
+ [
+ .count = 6,
+ .key = "e653af1c61ce2d0647d1b1061f9ea4b8",
+ .iv = "a7",
+ .ct = "",
+ .aad = "",
+ .tag = "3b5b2557dee875f55f212a9e60b2b92c",
+ .fail = true,
+ ],
+ [
+ .count = 7,
+ .key = "59dc6acba574be98e752b8e8c3303bb2",
+ .iv = "7f",
+ .ct = "",
+ .aad = "",
+ .tag = "312d175926dcf7b1c954f5e112b19aba",
+ .fail = true,
+ ],
+ [
+ .count = 8,
+ .key = "043e809f16b6336d918e5d3a6ad1ef76",
+ .iv = "a9",
+ .ct = "",
+ .aad = "",
+ .tag = "c29d3a8958f0dc03d0ee825557edaa36",
+ .pt = "",
+ ],
+ [
+ .count = 9,
+ .key = "cf4779eb812c1ea6af76e5512ee2de07",
+ .iv = "3f",
+ .ct = "",
+ .aad = "",
+ .tag = "4276c6b09a9d8ca345c48b5b41e10d27",
+ .pt = "",
+ ],
+ [
+ .count = 10,
+ .key = "bf222b8eb493dbaeed2a88d76369292c",
+ .iv = "77",
+ .ct = "",
+ .aad = "",
+ .tag = "ab37b4a1ed2f9080e9ceba1cbeac82b9",
+ .fail = true,
+ ],
+ [
+ .count = 11,
+ .key = "c0450e284a91a1b707adbccc3b490ea2",
+ .iv = "33",
+ .ct = "",
+ .aad = "",
+ .tag = "ed821499b8e06a53e45b3924f5f5bab3",
+ .pt = "",
+ ],
+ [
+ .count = 12,
+ .key = "a83e39d2d058eac52b18e30cafc7b561",
+ .iv = "47",
+ .ct = "",
+ .aad = "",
+ .tag = "829b67ebca7b9e72bb9dcc6f355f13ed",
+ .fail = true,
+ ],
+ [
+ .count = 13,
+ .key = "ddf0b0959072227a8832856cbe0ddb59",
+ .iv = "e3",
+ .ct = "",
+ .aad = "",
+ .tag = "399668996fc7968397bab1d0c90e728b",
+ .pt = "",
+ ],
+ [
+ .count = 14,
+ .key = "9637175c45ae060540daf705935259df",
+ .iv = "81",
+ .ct = "",
+ .aad = "",
+ .tag = "e11f40728237696d37d90971792e874a",
+ .fail = true,
+ ],
+ ][:]
+ ],
+ [
+ .name="aesgcm-dec-iv8-pt0-aad128-tag128-key128",
+ .keylen=128,
+ .ivlen=8,
+ .ptlen=0,
+ .aadlen=128,
+ .taglen=128,
+ .cases=[
+ [
+ .count = 0,
+ .key = "4d40d6f1c358c608229c3fb53cf16074",
+ .iv = "31",
+ .ct = "",
+ .aad = "b33e82bab8f434556b66384891f7aa15",
+ .tag = "a97077c9d28f4814ccc4f0cc15839701",
+ .fail = true,
+ ],
+ [
+ .count = 1,
+ .key = "e679147609421f10442e885e51138054",
+ .iv = "eb",
+ .ct = "",
+ .aad = "99e44fd2fb2beac575d8122c2118ad4f",
+ .tag = "ef71d9b0664ce39687653dab5deebe40",
+ .fail = true,
+ ],
+ [
+ .count = 2,
+ .key = "a4d5f63c3900c50387a8f72cfee4d698",
+ .iv = "12",
+ .ct = "",
+ .aad = "3fd4d2167b919693c09299f6d28c34e9",
+ .tag = "8194cdafdd0c1a2b4faba04e44596047",
+ .pt = "",
+ ],
+ [
+ .count = 3,
+ .key = "6f08ddfcd9fe24582a520cdc64579db4",
+ .iv = "1c",
+ .ct = "",
+ .aad = "1cc66cd7a429e283bc15469ae4de3e0d",
+ .tag = "970a39f0c6d6ced0ff3aedd3c95f2fda",
+ .pt = "",
+ ],
+ [
+ .count = 4,
+ .key = "469997c3ae1948135727dafa5f466f5b",
+ .iv = "c1",
+ .ct = "",
+ .aad = "86d26a4a5e4eab2b1eb1872a46d5ada6",
+ .tag = "971b1944e0d6ca40a37c1036fb4320e7",
+ .pt = "",
+ ],
+ [
+ .count = 5,
+ .key = "dfc45847e61d4ee84d86f0c5e87fc1c1",
+ .iv = "e0",
+ .ct = "",
+ .aad = "73417b5fe6435b8f9fc4e07f55d0a544",
+ .tag = "a7116e4ee7cad229b12fbd859a40d3ad",
+ .fail = true,
+ ],
+ [
+ .count = 6,
+ .key = "624dbe4362f4fafcbc16edf65baff0a1",
+ .iv = "a9",
+ .ct = "",
+ .aad = "727822ae501acf6b543b90034ee03fa7",
+ .tag = "9328e8c1111c234ab317936fa503ff76",
+ .pt = "",
+ ],
+ [
+ .count = 7,
+ .key = "3bcb449424e1a26257050e1f94113d36",
+ .iv = "60",
+ .ct = "",
+ .aad = "867682eeb2be2ac09a1c1fdc1c25bca0",
+ .tag = "b5d9d2efe0f76e6aafbcf8859b596bba",
+ .fail = true,
+ ],
+ [
+ .count = 8,
+ .key = "fc78d9f2bd3d22f05a29db240a098cc8",
+ .iv = "49",
+ .ct = "",
+ .aad = "6bf7fa069eb367a3e5e3431ea16ce9af",
+ .tag = "1b9d7b70e6d0c4244bcd675cac565b48",
+ .fail = true,
+ ],
+ [
+ .count = 9,
+ .key = "24a94e284b2a939910e662742bff03bf",
+ .iv = "95",
+ .ct = "",
+ .aad = "8730e92568407e670ad7687b5186e653",
+ .tag = "0fc92cd17c050868d55c7a71f6b541de",
+ .fail = true,
+ ],
+ [
+ .count = 10,
+ .key = "dc07e31f47f3b99a9254d7900a946bda",
+ .iv = "f4",
+ .ct = "",
+ .aad = "3d6fb3cfadb0328561d4b564f5a646a0",
+ .tag = "7f4bb14bad803429b9cea7effa692a3e",
+ .fail = true,
+ ],
+ [
+ .count = 11,
+ .key = "991231b6c3c357039b98bb12d6e4fa40",
+ .iv = "87",
+ .ct = "",
+ .aad = "ee197df27488b4384289a6923a15618e",
+ .tag = "f5204cbb73966ba3bc08b2792688a71c",
+ .fail = true,
+ ],
+ [
+ .count = 12,
+ .key = "566e71def77d628be1bcbaefc79b8c53",
+ .iv = "8d",
+ .ct = "",
+ .aad = "07afbad606e2b93c27a990819776db1c",
+ .tag = "7ec8dd54f009377c4151d13f29e95a47",
+ .pt = "",
+ ],
+ [
+ .count = 13,
+ .key = "f3e84bc419d6d2ec013d0ccc4cedc344",
+ .iv = "9f",
+ .ct = "",
+ .aad = "e8f2b4ecaf98fc2f7dc654e1e8280f51",
+ .tag = "a880b9bb77271e5190cb9ae7ddf5cf5f",
+ .fail = true,
+ ],
+ [
+ .count = 14,
+ .key = "fa37b673effbcf9d2b9040150e6df785",
+ .iv = "b5",
+ .ct = "",
+ .aad = "ff2a2d89c12e0695e543e1aa9433432a",
+ .tag = "f7db0c28c394bdbacbfda8eee9f4870f",
+ .fail = true,
+ ],
+ ][:]
+ ],
+ [
+ .name="aesgcm-dec-iv8-pt0-aad160-tag128-key128",
+ .keylen=128,
+ .ivlen=8,
+ .ptlen=0,
+ .aadlen=160,
+ .taglen=128,
+ .cases=[
+ [
+ .count = 0,
+ .key = "408f5edd36d7684ad7b5909ac3c04de0",
+ .iv = "8b",
+ .ct = "",
+ .aad = "48a4bb10a14255792c5edb39bdb056f4333b3cd1",
+ .tag = "5c34609612faca9ec1e60852f1bd7bb1",
+ .fail = true,
+ ],
+ [
+ .count = 1,
+ .key = "4015eb0551b8430139997bf0ec21449e",
+ .iv = "de",
+ .ct = "",
+ .aad = "d1c4c57dce37a40dbef0e79db870e3c063eeed6a",
+ .tag = "23b3df54453afaeb9659e1ff7b3f7810",
+ .pt = "",
+ ],
+ [
+ .count = 2,
+ .key = "a111becdf54ec92358cd1fc8256f1971",
+ .iv = "8d",
+ .ct = "",
+ .aad = "2dd8f2574006d99ebb57fcabafd56aa2192b84f0",
+ .tag = "33cc7a728a8e8b657ad2a3573fecfced",
+ .fail = true,
+ ],
+ [
+ .count = 3,
+ .key = "6827a0f881f3d01bd0d27ff939af9084",
+ .iv = "b0",
+ .ct = "",
+ .aad = "8912955dd4b11e6c7fb85cd6399b72f78f90635b",
+ .tag = "64f3db227bf0f76c34f2c479567b2ce0",
+ .fail = true,
+ ],
+ [
+ .count = 4,
+ .key = "3890e598fd3ba0a065b1f7e85c0a1ab6",
+ .iv = "7c",
+ .ct = "",
+ .aad = "7fb017e809d595fb7d6c12cd24cf043512483613",
+ .tag = "a5ebe29ea14557eac06f47a6c739c7eb",
+ .fail = true,
+ ],
+ [
+ .count = 5,
+ .key = "0824a6b28f571e06c7f2fdf73e5321ce",
+ .iv = "0b",
+ .ct = "",
+ .aad = "9cb281ad4b01183ad1944edaa2de849992292406",
+ .tag = "1c84cd44a9cd886e85de0d28ffb558f0",
+ .fail = true,
+ ],
+ [
+ .count = 6,
+ .key = "958cdcf71dd7506b16af9257a741a3e9",
+ .iv = "24",
+ .ct = "",
+ .aad = "681243870a7069eb05a693c8972b95a83800e564",
+ .tag = "89a6063d338a30f3319d90b59a28f713",
+ .pt = "",
+ ],
+ [
+ .count = 7,
+ .key = "41982249daf5e2ee3b07c0020680392c",
+ .iv = "c0",
+ .ct = "",
+ .aad = "a94e66f0aaa2c7bc9b6466e4a71dd2be78bce2e9",
+ .tag = "3709bd7f4605ac028e2293df8725b9cd",
+ .pt = "",
+ ],
+ [
+ .count = 8,
+ .key = "c854519808db1c143171785dd725a5a6",
+ .iv = "7d",
+ .ct = "",
+ .aad = "1cd9a2d7383fddcf2caa7b0e61b5f63788857717",
+ .tag = "3db99c25e24c3664b25e93103fc0e543",
+ .pt = "",
+ ],
+ [
+ .count = 9,
+ .key = "71eea843298832fc0ddefe986bcf13d5",
+ .iv = "41",
+ .ct = "",
+ .aad = "b94de45658fe58a976fad444b84c4c22afe3191b",
+ .tag = "b1761dbd1847093ae4459d34db9ee590",
+ .fail = true,
+ ],
+ [
+ .count = 10,
+ .key = "a672e9b83814476e68a42e9515c7af7d",
+ .iv = "1e",
+ .ct = "",
+ .aad = "7e64460fc195db77eeb420feea417f4c658b0425",
+ .tag = "70165b91a2f68ff873e573c894733c99",
+ .pt = "",
+ ],
+ [
+ .count = 11,
+ .key = "755652c1d27e53a5afc5d0e17244c4bb",
+ .iv = "a4",
+ .ct = "",
+ .aad = "def3ebf2df54996c4ea23e08c97fedfa460a40e7",
+ .tag = "371d7121657230635483044b3f66eafb",
+ .fail = true,
+ ],
+ [
+ .count = 12,
+ .key = "d4e049cf72199dc96f4851f382694e24",
+ .iv = "03",
+ .ct = "",
+ .aad = "064e0862562a98f7ad1ddeee3413d3c9bbc7ff3d",
+ .tag = "50c942b9509ff9f4a583f698e59d6afc",
+ .fail = true,
+ ],
+ [
+ .count = 13,
+ .key = "e7f7d520bdcdcc9d5f9b29e97f298d20",
+ .iv = "2e",
+ .ct = "",
+ .aad = "8170af811d0dbcff11b7b396fee56af941f7cdf6",
+ .tag = "d29fd40719ebaa2581e143886e2b2b43",
+ .pt = "",
+ ],
+ [
+ .count = 14,
+ .key = "bf4859881910ace5af232468db52f44b",
+ .iv = "37",
+ .ct = "",
+ .aad = "b7f9f2eb1b59e8c4fb6c27434891806870865857",
+ .tag = "605737b4d721d60118be6a692ff1e4e6",
+ .pt = "",
+ ],
+ ][:]
+ ],
+ [
+ .name="aesgcm-dec-iv8-pt0-aad384-tag128-key128",
+ .keylen=128,
+ .ivlen=8,
+ .ptlen=0,
+ .aadlen=384,
+ .taglen=128,
+ .cases=[
+ [
+ .count = 0,
+ .key = "1ae9740657325d31f434446cd9d97eef",
+ .iv = "c8",
+ .ct = "",
+ .aad = "e6b2f6b3b1acf2e5e855b5382ab52428cfdc073c5efe006e30950b99b9d1683816837980620ce0f90059fbd79cb194e2",
+ .tag = "8297601f9b017c035c62d19a22e0e264",
+ .fail = true,
+ ],
+ [
+ .count = 1,
+ .key = "bc84a257f56155bd785608ac8c24b276",
+ .iv = "ac",
+ .ct = "",
+ .aad = "748bf986e77405332f770405060d9469f2860afeb09443b3deca0763bcdc5d3fd3b5ea3dcb58fccf0760a0b28343debe",
+ .tag = "95ff216d435ffd1a7c6b2da9881694b4",
+ .fail = true,
+ ],
+ [
+ .count = 2,
+ .key = "37c23257198d1230fbe1d9dc004afbb7",
+ .iv = "d7",
+ .ct = "",
+ .aad = "d207703ecfb76e479dc2834a2d7a0669da406113ac2bf1a583a6611d0e10d3e9779902e4db9670028d87fdad167ec360",
+ .tag = "b0b637e647ac042ce14709130e83dd1e",
+ .pt = "",
+ ],
+ [
+ .count = 3,
+ .key = "86beba5f3cb8ad7100831891b11e270f",
+ .iv = "20",
+ .ct = "",
+ .aad = "9e4803fa8b7610976810643b6617e23514785fc47f1b98ab821127ad14e07f9b6619d3ad60c1450e70e479b6c4a1bab5",
+ .tag = "a05841b12a230bf7f543bbc9cf8150c8",
+ .fail = true,
+ ],
+ [
+ .count = 4,
+ .key = "0acd181f57b2f5f295fcb4f7e3e7c015",
+ .iv = "cc",
+ .ct = "",
+ .aad = "e11495a665bc19496d3092201c82e8b82afd2b633731cb2d3901b05f8ab1fcf967749240439a46865cb40f43498efb81",
+ .tag = "e3b77cff5b80a93d6b434cc5c7ddc8b1",
+ .fail = true,
+ ],
+ [
+ .count = 5,
+ .key = "ece98f2b51e3d9fc7834a390b5c0b456",
+ .iv = "3f",
+ .ct = "",
+ .aad = "e1ec0cf06b2b40ccf6e09908a51da69cfebea3c31b3b0bf31109a68ce39f498a7178b665db318e1e20fced63edc20029",
+ .tag = "4eb747ff43b6e510cb3b1dcea3e0d5db",
+ .fail = true,
+ ],
+ [
+ .count = 6,
+ .key = "8432485ef7266159dda311ce1bcd09e5",
+ .iv = "ed",
+ .ct = "",
+ .aad = "58ca5e7b0b0b6217deacc08f8a03687707df6517ac06c149f2d4e4475059640c941754492a660aa183881120cb46f448",
+ .tag = "c3f04884b8f57fec6a998113861c5ba8",
+ .fail = true,
+ ],
+ [
+ .count = 7,
+ .key = "f166e9fcc17b23ada7ce16448ebbfc86",
+ .iv = "19",
+ .ct = "",
+ .aad = "301b566314d759e1c4c689fcdf6690a1c91ce7e7f0acf6e5e9af03944df12a0a90d95441bc01aef35c663152ebd6c765",
+ .tag = "8aa452de37ac8208212e8ac28c8c3f2e",
+ .pt = "",
+ ],
+ [
+ .count = 8,
+ .key = "e578c0e602b4f4a7c685a8d3ff239633",
+ .iv = "e2",
+ .ct = "",
+ .aad = "8c94282071210b796e7b765f182e330a77d6de948c60cca77e9cff84c217c17a08becf8c996d814a52addd71206090ac",
+ .tag = "7907777ea2621b8fb4333e25deeb18c0",
+ .fail = true,
+ ],
+ [
+ .count = 9,
+ .key = "937cb25cfbff7500de9ea7ece130c62d",
+ .iv = "8f",
+ .ct = "",
+ .aad = "9768d0cec341fc4daef3d99f1aaa75ff0df8f050a6bd3d62067bb73c472e11e66de0bf3f0aeaf436c56f1998d3d6d4f9",
+ .tag = "32b6ae53048baca0e1854945f9561f25",
+ .pt = "",
+ ],
+ [
+ .count = 10,
+ .key = "34ff62e54d53fdf5334c3ceb88d6d163",
+ .iv = "60",
+ .ct = "",
+ .aad = "8c420407e2018b5a8facdc029a4e1075e774cca1e2dbcbde9725944ea987c5d3664e8b9f4c3a1abe5fc2c8af9b726ea5",
+ .tag = "7933d03bd6fbfcbe0eb942029bf28537",
+ .fail = true,
+ ],
+ [
+ .count = 11,
+ .key = "e6d04a9d2eae2d783d8a9c937a171c93",
+ .iv = "9e",
+ .ct = "",
+ .aad = "fbee0c095f6ddaf64384c30cbb326cb484b109075d22fe4c60eb23575a8c60403fc18664da60cfe95e1d143b4b0cd604",
+ .tag = "f36f6fb4079a834f662c788282be1b22",
+ .pt = "",
+ ],
+ [
+ .count = 12,
+ .key = "45dd326a6f849e7fcf2a320475c1847d",
+ .iv = "1b",
+ .ct = "",
+ .aad = "c0a497520c0c2bb1b5816bf31592230f77db5e5fd713c3e738f0c2f273431fc0e9a7f93a2091b30b86b93e00cf1b4c0d",
+ .tag = "35434ab5c5bfac8a8e131d8c221e11e8",
+ .pt = "",
+ ],
+ [
+ .count = 13,
+ .key = "2bc2bc03ed5e134cc6632facfeaef82b",
+ .iv = "d7",
+ .ct = "",
+ .aad = "1b592c104757b85cb987f0043c0acff6924b3e7ddeac52b46f57d855e848208b043b239c38de5c463bc19fd4fbbdf22b",
+ .tag = "6b9a27e3a854f30db0e42f93040aa159",
+ .pt = "",
+ ],
+ [
+ .count = 14,
+ .key = "03e17a1b71d43b6cc84b343e7e855721",
+ .iv = "f7",
+ .ct = "",
+ .aad = "5f7430ed964cf4269722cf42595aacd9df6cb7cc52b56fc1e74f58444ab51c60c9c546b5465826e729e260452e1b9a38",
+ .tag = "7532afa628bdb877b7bd3ce2be539af1",
+ .fail = true,
+ ],
+ ][:]
+ ],
+ [
+ .name="aesgcm-dec-iv8-pt0-aad720-tag128-key128",
+ .keylen=128,
+ .ivlen=8,
+ .ptlen=0,
+ .aadlen=720,
+ .taglen=128,
+ .cases=[
+ [
+ .count = 0,
+ .key = "e2e24d1695984b347a072571375a7a5e",
+ .iv = "43",
+ .ct = "",
+ .aad = "85cc8ad50624197287c13172a8bb167160c876006f6178dc25a2a8749f4e05856705dc8a6d2059596b6faa32c6d3172fe4dfceef34d07a0751ad040d30fcbd9aa359902369fa5c2621b1b6285b7c9cc8ff8d27a73af812fe57cc",
+ .tag = "24605e8cc326b3b49691f9f15b7520cf",
+ .pt = "",
+ ],
+ [
+ .count = 1,
+ .key = "2636dc632e930e452abd996c4a1c471f",
+ .iv = "fc",
+ .ct = "",
+ .aad = "fa25590c4d98ae38743e37adf3883fdb97f5c307cfc694009d24465fc68acf5a2fb479d89a3bf5177b6e0c0021468623ec682ea067c15f65a3bea3d82b97bca083924478a92c69a9fa741079e660831cb4e55aa7b34c206ce643",
+ .tag = "8769fb9968c35b25235ab44149da88ba",
+ .pt = "",
+ ],
+ [
+ .count = 2,
+ .key = "22fa7f880a9cba8b2e4842502cb06b09",
+ .iv = "c0",
+ .ct = "",
+ .aad = "bad2f790fe8a6bb6eac0a0795f5d783b6060912414dce383f12a5f24b06eaba5b7d6acd4a65f50f4c1a03b986cbbdefe893909eee6b80e9434a70f56e17ec3c368c5ccf4ec5979622e6941f2a5c6b6b5ddf76be1f4f96e6b3b63",
+ .tag = "01059abb0e9f6f6347de609169aad741",
+ .pt = "",
+ ],
+ [
+ .count = 3,
+ .key = "af6c78986a3e6bf49b387baca304a8ad",
+ .iv = "5c",
+ .ct = "",
+ .aad = "2e3293c13d588d9d55a2ec858012846a0afdb33b0243b07f5aa73fd3205e43db48d9bb861346d511db459c2bc3fd99d4c1822fb667aed6207d848d1cf6b79d3ccf54e2e83e03be14cd02ff39cce3f577414e3030027283050dcd",
+ .tag = "e2b6e2ce205818af8a0eb504c9851876",
+ .pt = "",
+ ],
+ [
+ .count = 4,
+ .key = "3105407925a55750f2ba1d8745cfdde2",
+ .iv = "eb",
+ .ct = "",
+ .aad = "f3082b1be6f72cf788654471795aa0fa01fec2a3e5907e2bb314266cdff8330d8d7c8324da811a335b36931bf3c2e2547513d4e18725c8eb24307bf9d93732c4391c1a7bec4351bea30486deef01d47512984621ae8036aad97a",
+ .tag = "8966bbffe175e5874ea28251fdf4b51a",
+ .pt = "",
+ ],
+ [
+ .count = 5,
+ .key = "23a9154bcfb8c8153628f0f3ae097b31",
+ .iv = "1f",
+ .ct = "",
+ .aad = "0f18910f8645dae1e6cf8317b037b0b55195c1518b368574d0726e7c397cb724c90e1faff11af9f8f4de19cf65e2ebdc98821d6ca517141ae65d4da02469e604776e688efca6e6f493eed3a1218a3864552aa3c4ee569e7e28ec",
+ .tag = "164da913f61fe8650c788aec2e22731f",
+ .fail = true,
+ ],
+ [
+ .count = 6,
+ .key = "f994c0d624b52e2797add1b23a9e286b",
+ .iv = "44",
+ .ct = "",
+ .aad = "462a7b36598a3fb7476adb17ceba8ba80575b3b833ea2f77f1c519168d7039f87080af14d05c5b4452cb0a0588cb6b74ad2b6b804f57ad4b1d76120ca2bac0a03c8f3b013960565691286b8d75795edffb3f8b7040bf60cb1676",
+ .tag = "b11e98073a0781637a2d5b93167448e2",
+ .fail = true,
+ ],
+ [
+ .count = 7,
+ .key = "de39500c85a6a792d628bd3762f7804c",
+ .iv = "1a",
+ .ct = "",
+ .aad = "b7bfc560fc4674445f08bd00d45dac7285a265a0af9733a21e64c25cb9a908cc5183df5282faffcbbf8783632fdb1441b27da2d7e0ea4e781018a8fbb2989735a98bc36ae8af50cb854b2976274ed1739310e614579fa4a15f65",
+ .tag = "e6b9ce3feabbcd850e117952b71a9303",
+ .fail = true,
+ ],
+ [
+ .count = 8,
+ .key = "a11970ee87def09ea202ce36b7dd9461",
+ .iv = "3c",
+ .ct = "",
+ .aad = "8f56d3ddc39dbb67e3a5124eddf36868d65b70aceb8c0a670afbfc5159f4bdb0a06ea531083dfadd4d882ba9c5923c59777136c79f91c09f684328abd656f60ab61f6c09a28969aeab7adab856cf020dbf70076a82cce3b23fa5",
+ .tag = "1223368740daed707aee9ae0397da4e5",
+ .pt = "",
+ ],
+ [
+ .count = 9,
+ .key = "06a4c12e67f8b0fe3aeec0648111293e",
+ .iv = "1c",
+ .ct = "",
+ .aad = "fdc141aa02ff488fa821df4979792ad6bee9006b6eb8785e2cddc85ebac8cd9e60bcb0b407436cc7ad671e0f456713a2f4ac21b815ef661e9281146adf12b8f49c684d660f3c7704bbdc8a55e7b01b66d2ee24db4f35da229481",
+ .tag = "ef284f0d2d79d438d5e68a0d39900734",
+ .fail = true,
+ ],
+ [
+ .count = 10,
+ .key = "ae999c2f7cb1e5a614f5bd680bed2eeb",
+ .iv = "65",
+ .ct = "",
+ .aad = "0162619304596173b1da66f9bb6c13cd55336ec23ec877bddeefecb977a0047d83d96717992e3f69c50864b59628d00c234ef4583f41f1f1fa2a2b49d5bdf827be2db9d902527161200e2b98943aae5eb35981e871c8fc5d853a",
+ .tag = "d371de207cc3de8e65122d3be6ad6860",
+ .fail = true,
+ ],
+ [
+ .count = 11,
+ .key = "64fdd370bb67f14a65efaccb1581598b",
+ .iv = "1a",
+ .ct = "",
+ .aad = "223490ba602811a01a7ac875efa4b4e55bd3f4cd57fdbb897bec98520344a316a1fa5b032a8d413f5897f4fc5e152fcf5ca6e0ee03929465e4e27d2d12493b2bca3e216d40d2d0c428f0d15c24619f1e95625e8201a0a9630d34",
+ .tag = "e5de0a4438d26c5881fecf9fa67e5d8c",
+ .fail = true,
+ ],
+ [
+ .count = 12,
+ .key = "c220b310806c6746c85177a4377db6ea",
+ .iv = "7f",
+ .ct = "",
+ .aad = "ae034e0a202cbd7ff0d57a41835062ab8c294c94f11f6b99e19bec58c3cfba5aea2db28f338d403bb9c966cf13f2e2feb989c85435a76f3a12c1e9a5f76dc5fb4f3f0cab16d424266409843825963cc95cb80ab05b0fb3713465",
+ .tag = "ac367d37c3632bba2bc30554139a9cd3",
+ .fail = true,
+ ],
+ [
+ .count = 13,
+ .key = "b08f47c87b6fc6d9d092bd56b138ade0",
+ .iv = "39",
+ .ct = "",
+ .aad = "ff0fc82415c32195e7c8a00a7e3803d7243e91911840b4d900faccfd8a07e7709e01ee828f3076680f817bf004b540946cd5cb326ba255903d52d23db84d22adfa629db355f69aedf4ff22fe4dbcf29a44610e1c89c62d737ba8",
+ .tag = "767a6472382071f3cbe4627eaf7e4cce",
+ .fail = true,
+ ],
+ [
+ .count = 14,
+ .key = "5b61080a4f2d191b91509ff2c8bb3f9d",
+ .iv = "df",
+ .ct = "",
+ .aad = "97d8c8ad3c72c509ab9cb5aad3db62be6669546680e9aaf759cb3bc7730e3b7276537bb619b2c167dfe05fd7708c86bf6e4a4b2e5869e6a02fba745013341168a8951c5d32ebaa8a5c5d4e54c9475835520d0e2ce3dcfe6df071",
+ .tag = "9f87f83d8425f65afd9d8f8f27857bb6",
+ .fail = true,
+ ],
+ ][:]
+ ],
+ [
+ .name="aesgcm-dec-iv8-pt128-aad0-tag128-key128",
+ .keylen=128,
+ .ivlen=8,
+ .ptlen=128,
+ .aadlen=0,
+ .taglen=128,
+ .cases=[
+ [
+ .count = 0,
+ .key = "475ad3a0ae4b9f5b475eede95cadc9a6",
+ .iv = "f1",
+ .ct = "1f9e03adc858959ab2259e3f44d88d58",
+ .aad = "",
+ .tag = "3aa732fb202126c5f5ad56bf8bc59d38",
+ .fail = true,
+ ],
+ [
+ .count = 1,
+ .key = "ef5185a3840e78fc0bfb258b49a1f69f",
+ .iv = "82",
+ .ct = "8f9763c61d758247deaa20c735fba84c",
+ .aad = "",
+ .tag = "ab393cbf298503dc093e8936a41a5dff",
+ .fail = true,
+ ],
+ [
+ .count = 2,
+ .key = "b83c2ed0021559716a563cdf70233486",
+ .iv = "2b",
+ .ct = "9ee017f647d3675d19315ba5eacd4fea",
+ .aad = "",
+ .tag = "7ac7b12870e8516dcf8727e1f6cf206c",
+ .pt = "0f2a11a721f604e7e56a7d80fddbd867",
+ ],
+ [
+ .count = 3,
+ .key = "661097c8a4116d98b1b62d5d255f23b7",
+ .iv = "1c",
+ .ct = "5364b867c467585d7d97345bb93b93a9",
+ .aad = "",
+ .tag = "7ad19080dbc8906902a02bcc17c46bff",
+ .fail = true,
+ ],
+ [
+ .count = 4,
+ .key = "5a2646abc3eacc0028d361f093966104",
+ .iv = "b2",
+ .ct = "7bc816008ed291b8c3af20be56a3a70a",
+ .aad = "",
+ .tag = "83de6507667752a50b400b059b08d241",
+ .fail = true,
+ ],
+ [
+ .count = 5,
+ .key = "2104b0fbbccbb25d7b74655b1f208670",
+ .iv = "24",
+ .ct = "1bce3a43291c76631d84eb7b2e4d4437",
+ .aad = "",
+ .tag = "afe81ab1815783feab30509a84464f80",
+ .fail = true,
+ ],
+ [
+ .count = 6,
+ .key = "e9d950d382c6a754debe7d254ca74afb",
+ .iv = "a3",
+ .ct = "33aca7df0d0f43197bf237a981d0c513",
+ .aad = "",
+ .tag = "d96a257b8033de9a89b166be102dbd39",
+ .pt = "046781214b90e9192930b46c2a2ee2ba",
+ ],
+ [
+ .count = 7,
+ .key = "94d7604c5ab9e827c06cd16d2b523b03",
+ .iv = "d8",
+ .ct = "575000674fe7e28aedf7f17aac78a0e4",
+ .aad = "",
+ .tag = "f889912e41fd23f7c0b0a0ba6d242d18",
+ .fail = true,
+ ],
+ [
+ .count = 8,
+ .key = "e4bc6a85b15dcbe0b1bb885b1441df8d",
+ .iv = "ce",
+ .ct = "d586a34e16b9b425f812df1cd48bb98d",
+ .aad = "",
+ .tag = "27b877fa6aebfd5e98e83307a8bf9ced",
+ .fail = true,
+ ],
+ [
+ .count = 9,
+ .key = "5631d649f2bac22cf2b7fad6ca2a9886",
+ .iv = "a7",
+ .ct = "8b23bc6f1ab5699c11b130ccb92c46c8",
+ .aad = "",
+ .tag = "4fbfa23152c2fa843b812a6fb101114c",
+ .fail = true,
+ ],
+ [
+ .count = 10,
+ .key = "3b3157a1d7d0bcf29e5383b288520f7f",
+ .iv = "79",
+ .ct = "6263500c97a793793ad08b120aa79efb",
+ .aad = "",
+ .tag = "b13a6d2cac8a0e3e058e622dc54e9846",
+ .fail = true,
+ ],
+ [
+ .count = 11,
+ .key = "7c56c66eb4da6fd89cb08f8425cc4ffc",
+ .iv = "b5",
+ .ct = "ce8c3224399f68ecf39c1944e62b8821",
+ .aad = "",
+ .tag = "9d3422a3d68126740a490b2518a89acf",
+ .pt = "7844695abdff139b6bf31f59bb9fefd8",
+ ],
+ [
+ .count = 12,
+ .key = "c1be3315e1d8995335add564fde37583",
+ .iv = "b7",
+ .ct = "9c1137927b7516d05e6d41569195abb8",
+ .aad = "",
+ .tag = "2e8c9b185a1ec8e47733649aee7b7857",
+ .pt = "a47a89854cbb4979dbb10f8c872393ae",
+ ],
+ [
+ .count = 13,
+ .key = "4a49298e0e4c75d99dfaef4f726f47ef",
+ .iv = "b0",
+ .ct = "cb546c7cc8655718977533776c961b7e",
+ .aad = "",
+ .tag = "2b1d57713d26821985a7edfb9552f6e0",
+ .fail = true,
+ ],
+ [
+ .count = 14,
+ .key = "d3fdddebe8615c5df5e24a760c2fc425",
+ .iv = "32",
+ .ct = "40649beb7f8e72be7409e389d1ba6284",
+ .aad = "",
+ .tag = "bf3d45d77fb67b68fcc96ea15d7e45a5",
+ .fail = true,
+ ],
+ ][:]
+ ],
+ [
+ .name="aesgcm-dec-iv8-pt128-aad128-tag128-key128",
+ .keylen=128,
+ .ivlen=8,
+ .ptlen=128,
+ .aadlen=128,
+ .taglen=128,
+ .cases=[
+ [
+ .count = 0,
+ .key = "bb01d703811c101a35e0ffd291baf24b",
+ .iv = "ca",
+ .ct = "6b5fb39dc1c57a4ff3514dc2d5f0d007",
+ .aad = "40fcdcd74ad78bf13e7c60555051dd54",
+ .tag = "0690ed0134ddc695312e2af9577a1ea6",
+ .pt = "57ce451fa5e235a58e1aa23b77cbafe2",
+ ],
+ [
+ .count = 1,
+ .key = "9c0f5ddaafa6607f53ca1a8be5363dbe",
+ .iv = "0d",
+ .ct = "f95675ca26da00174e5f95fdbcbc0733",
+ .aad = "8bf158f144612aaacc8a55df20e65f01",
+ .tag = "b08472da09d271312f664062bfb9f229",
+ .fail = true,
+ ],
+ [
+ .count = 2,
+ .key = "41189943dd792fc053194b9a256bd689",
+ .iv = "ce",
+ .ct = "75f8595836a35a5292846bbe111f1262",
+ .aad = "a137ece473fecb90e977ab01fa5a05dc",
+ .tag = "3c43befa6a50a173c7583b3270bfd1d2",
+ .pt = "c2b2580bab09c4684a031add4079af7f",
+ ],
+ [
+ .count = 3,
+ .key = "9a83ec9d9ede290b9eb9d15be76fab18",
+ .iv = "93",
+ .ct = "b69da3921a7862614f9916b3ea48defe",
+ .aad = "87c568ed76a356622b0c4b44af5ff930",
+ .tag = "a4bd734b9d438f105744849c47a3fc3f",
+ .pt = "717e932cb57205a8c3b26bf03dd7ed66",
+ ],
+ [
+ .count = 4,
+ .key = "660590a1520a2a6e7dac32b6ef91600b",
+ .iv = "bc",
+ .ct = "b0d7fe945b64610e2e5ca0179acf89df",
+ .aad = "301d0ee073a584d43335061bf3a5e8ba",
+ .tag = "bc5bdd643b2bde7ea5719449e3a4aa8a",
+ .fail = true,
+ ],
+ [
+ .count = 5,
+ .key = "43201453df2f36d9c00ca0a6e22a32e0",
+ .iv = "cd",
+ .ct = "c402ee50bf9f0400e5935e47277b93c5",
+ .aad = "4cbbf6dc13b1b0654dc584aaff691542",
+ .tag = "ae2d0d584262b5215fb9d716361a8cd2",
+ .fail = true,
+ ],
+ [
+ .count = 6,
+ .key = "d88f656421a2da9b81a778eebfa478b5",
+ .iv = "d1",
+ .ct = "1c9e520ae393416fcdf46050b798b96e",
+ .aad = "c865c7042459bf3197f56a759ab3a332",
+ .tag = "74ae9b1dab8392536b057157796e1f1a",
+ .fail = true,
+ ],
+ [
+ .count = 7,
+ .key = "934d1d7e1f5ea0030a38ad84e795a743",
+ .iv = "ee",
+ .ct = "b3a76d615a99bd1f48618b48abe5e879",
+ .aad = "94412e23057e6b191a4b167232a8c12c",
+ .tag = "8fd7e01de331cce9297f9652872ad2c3",
+ .fail = true,
+ ],
+ [
+ .count = 8,
+ .key = "38d76d10fdbd94cfe547f94065870cd9",
+ .iv = "13",
+ .ct = "aae033acf66e9689ff565102538a7de5",
+ .aad = "f7895ca67afae65ef1a0a220b14d9298",
+ .tag = "ca77651597b6f9ab1486b2a845b557d7",
+ .pt = "3314ebc9de87c9a9c5029ef6e6f76b68",
+ ],
+ [
+ .count = 9,
+ .key = "34269c94b363bbfd00ca389199ab016a",
+ .iv = "66",
+ .ct = "9214dcb1378e15253b494e53b682256c",
+ .aad = "e2e4384829c46a9773e3f52c962046d1",
+ .tag = "72313df1c783252dd493a866d7b9306e",
+ .fail = true,
+ ],
+ [
+ .count = 10,
+ .key = "705a709a69cd07fc198bf8f507e8b207",
+ .iv = "e6",
+ .ct = "e44d5369f1a2ca451e88a921af79df27",
+ .aad = "d105966cc321b74ffbf0f74dbe7f4395",
+ .tag = "0b7cfc50d7996876f8392e3f122bc16c",
+ .pt = "a19fbb90c47562744b2c973a23d30af3",
+ ],
+ [
+ .count = 11,
+ .key = "dbbdd1bceebd1734c101ff3d2a2ee7e4",
+ .iv = "d1",
+ .ct = "e4c797cdfc84728fc97a7f23b8fa211f",
+ .aad = "4c139a501729903adf503b27d0aa275b",
+ .tag = "f3d9070f81671008727f792139df1de2",
+ .pt = "7790de2fca017ad89fb6c4818721d59c",
+ ],
+ [
+ .count = 12,
+ .key = "a3b71e7e2ceb2443f74d9eb1b47cd122",
+ .iv = "c4",
+ .ct = "09ca19d396a10f8d627ac79628bf9b07",
+ .aad = "788fd4360fc070d91a166fbaf17a4e91",
+ .tag = "ccc573e30e30fcbee9ce52323ebfe626",
+ .fail = true,
+ ],
+ [
+ .count = 13,
+ .key = "775a5fdd622fef46bff1bc6d42571e28",
+ .iv = "57",
+ .ct = "53be811a5bd6683a35ab4d7dd92ee290",
+ .aad = "0e560156adb642b51e0d56fdb85b1354",
+ .tag = "f7ccc5b960b89025a98834885b0241be",
+ .fail = true,
+ ],
+ [
+ .count = 14,
+ .key = "abfd013800b4923ee851512c8295aba7",
+ .iv = "2e",
+ .ct = "3eee6a43e5920639c779f3afa4afa041",
+ .aad = "3503566c08c78d446e5ce2b143ff5734",
+ .tag = "1aa9d08a381a36dfd15b1936b6b64c55",
+ .pt = "192acfd5039d91db9ed6d6f7855ee73e",
+ ],
+ ][:]
+ ],
+ [
+ .name="aesgcm-dec-iv8-pt128-aad160-tag128-key128",
+ .keylen=128,
+ .ivlen=8,
+ .ptlen=128,
+ .aadlen=160,
+ .taglen=128,
+ .cases=[
+ [
+ .count = 0,
+ .key = "67dfa2a700adb635a5d0df33795fbaf0",
+ .iv = "0d",
+ .ct = "46258d999083e2c81f2d2d130efe8e28",
+ .aad = "84e5eed1ebc365c446dfc30457042c448dba2a84",
+ .tag = "9a20a8866036d907d66c62a3d99f5b34",
+ .pt = "e39deb1b284b072ec42fa59dcff9bfa5",
+ ],
+ [
+ .count = 1,
+ .key = "3b06def5ecebd9cfe0c7aaeeea60dc1b",
+ .iv = "4a",
+ .ct = "254b5752c26d233de9c3cc2e396dc616",
+ .aad = "df7769df6637f74c2a5d4995cb8b96a316cb4d0e",
+ .tag = "4f22e642a63e916b0ed2d5a62f77c72f",
+ .pt = "e75cae43f809e0831cc91b742a27ff70",
+ ],
+ [
+ .count = 2,
+ .key = "2f699cf02e221b44c82e4b7c1f4fd2a2",
+ .iv = "0c",
+ .ct = "12d4882efd6cd23317d979d48584bdee",
+ .aad = "1e246a0cce2121ebe5c2aee97a40d8c4bf0c51bb",
+ .tag = "406d2ddc9e4d7165badc107ea85366eb",
+ .pt = "0fe875537ea9243502ae34a35aed19b8",
+ ],
+ [
+ .count = 3,
+ .key = "9fab437e2006f0e80682fa4fe92c65ab",
+ .iv = "fa",
+ .ct = "f8b9409fea9a3bd6c09521df3e490000",
+ .aad = "cdbe8b66f71b3399b258856a44ba1e50f56e1a7d",
+ .tag = "dd70a5beee1d4c28bf7f1d0b24a781d5",
+ .pt = "83ef72fb745bd46c40587419200ee0a0",
+ ],
+ [
+ .count = 4,
+ .key = "f2cd090b3dbb2baa49af730aed649386",
+ .iv = "85",
+ .ct = "8712c141e15bc4cf7f6a6644ea69762d",
+ .aad = "c2bfcd34f4193a71421dde647fe721855d063b85",
+ .tag = "b6a8d55fcbc9c6c449135310edde8c6d",
+ .pt = "8dcb8da2318dcfdaf19dc7d766d5e327",
+ ],
+ [
+ .count = 5,
+ .key = "688ed0e27e143337c69f0a7c2828f210",
+ .iv = "08",
+ .ct = "7260f41939f075689380aac123c37655",
+ .aad = "3371955366647b51e0e1232a6635519f148c8b4c",
+ .tag = "ec5aec72c07e39a26ec488706914a332",
+ .pt = "179e482d7c8c80775d2103c8cb43193f",
+ ],
+ [
+ .count = 6,
+ .key = "20475e1f801bffd965b391ec8eaeaa10",
+ .iv = "06",
+ .ct = "1151f9a07f7f82a925140a87117c54c4",
+ .aad = "6b5b853837ed665456b5c36c46338dfc2770491f",
+ .tag = "2d09fea62b7a2d354a304525fdc61a2a",
+ .pt = "bbf2c9b579f8a74f5796f0af357baf69",
+ ],
+ [
+ .count = 7,
+ .key = "e346b40550cb973ebb4bed63a45b2e0c",
+ .iv = "85",
+ .ct = "0dd9ff690e117ec2a86e347259673018",
+ .aad = "da5ca0f46bccb5ae0e240cf82a00f4f4b55a4f43",
+ .tag = "476eeab071e6536a2c8203574bd0cbe0",
+ .pt = "b45990066cf3080099de2a6e87dfa33a",
+ ],
+ [
+ .count = 8,
+ .key = "3436bec5de1a2c54a1fa62c90d4f2fa4",
+ .iv = "e8",
+ .ct = "449f5d40eb3c3c7cd391790e6464fd99",
+ .aad = "ebdd89e61d949c27be2c0c35f9b005c6adaa7b80",
+ .tag = "68ddfdb83bbc14eb63a46e1c5b1291d4",
+ .fail = true,
+ ],
+ [
+ .count = 9,
+ .key = "2c9e21117e432acf2a9b5fbc6dcea805",
+ .iv = "f5",
+ .ct = "5bed745e6be1b53ec22395347d14c8d8",
+ .aad = "9d996b4db9e481c7f8da9ccfa3a246c46960c3c4",
+ .tag = "720a249df5b969b4b27212163ebf3e61",
+ .pt = "4931d8b11f8756a55c3fdd145808239f",
+ ],
+ [
+ .count = 10,
+ .key = "8d99e9572503c621afd2e7e4a6d831c2",
+ .iv = "71",
+ .ct = "da923d567af64586299140206300a2e9",
+ .aad = "19d55e73b824a8cf41be4979536bd6019a9c9b49",
+ .tag = "dc5dde099a5decbbafb39aceb7220d18",
+ .pt = "be82a31ee1b8e6d64bea3933ce6b4bf0",
+ ],
+ [
+ .count = 11,
+ .key = "5c7a512dbe18faf5ff24558955311f32",
+ .iv = "7b",
+ .ct = "0aaf1f56ea2bcc1814d0a0e5167142ef",
+ .aad = "0cc61ac0deb1c66d196287b339e274139eb58a24",
+ .tag = "9ed67609a12a2109f399ace28eb60d6e",
+ .fail = true,
+ ],
+ [
+ .count = 12,
+ .key = "418e2a3cffe1e6e044e8bcb59b8d311b",
+ .iv = "f5",
+ .ct = "ecb882440b9b6d14d27690d2fe293896",
+ .aad = "995e6c744b6f07723b7ab9ee72a403ba33eaf767",
+ .tag = "7fd115c2d12bc5f47e53ac1e46f47700",
+ .pt = "a8cb23ae1421d75b92c80d6b557e3251",
+ ],
+ [
+ .count = 13,
+ .key = "a853f80a4b3a1d0136f13b23ab7815fa",
+ .iv = "fd",
+ .ct = "d50e748afb63282926cd2ee6af002f03",
+ .aad = "f41cbf7bef60e7b1bd70627413004f5d823fe58f",
+ .tag = "46076e17882a9371e4c4caf77e658981",
+ .fail = true,
+ ],
+ [
+ .count = 14,
+ .key = "5519ea004372338f99a285a8be6ea4e4",
+ .iv = "b9",
+ .ct = "2ce72553e17c7b14affaa7f51967ea79",
+ .aad = "948bf8567cad6bd1406e0f0f601efa06bc8aded3",
+ .tag = "ebfca3b12a36ca730d255a3f44869a52",
+ .fail = true,
+ ],
+ ][:]
+ ],
+ [
+ .name="aesgcm-dec-iv8-pt128-aad384-tag128-key128",
+ .keylen=128,
+ .ivlen=8,
+ .ptlen=128,
+ .aadlen=384,
+ .taglen=128,
+ .cases=[
+ [
+ .count = 0,
+ .key = "a6952c63fe1330fcadaf18cc67091be0",
+ .iv = "b8",
+ .ct = "2de2758c68968997aabbb48bd4dee23d",
+ .aad = "c4c029ee9c02237c2c0169a4e978dbf9753b0f8d28db5cb6136b59964a08272beb8758c9fef3dae9812e0dbfbc15628b",
+ .tag = "48846472385f2d42aa190f84cf6f3ee2",
+ .fail = true,
+ ],
+ [
+ .count = 1,
+ .key = "d518e29c12535fe723fe907bc6c2e279",
+ .iv = "90",
+ .ct = "21c9c5fddb5c01be3270286ca92d02f1",
+ .aad = "8aadb88f629559d76600b8034b350f4abb7144cdba3fd21b63d3c9d2dace457e2ac0ac7932b68653218ae2f5028c3359",
+ .tag = "ab164b442dad0134f0a7310d7f3c374b",
+ .pt = "ac2135cd23c86ad1b0f0d4f3e69c7f0f",
+ ],
+ [
+ .count = 2,
+ .key = "1c56d56e74595e2402239b41e7b5d9bc",
+ .iv = "87",
+ .ct = "04b9d54cdddf4bb842c7632da2898d6e",
+ .aad = "ed538beb249ce3fc663dc27e043a0a21644bc8b7ff87c5685b56582187edbb333b5116eb57ea1583f05bfee94bac1181",
+ .tag = "bc878ef99c874ff001524308fcee36c8",
+ .pt = "bac53d4f0906db3fc07d7f816a04de8b",
+ ],
+ [
+ .count = 3,
+ .key = "705a89617181388f49d43c75d83e04e4",
+ .iv = "96",
+ .ct = "18f7e071ace57f2a7debed21b1f0312c",
+ .aad = "1226ed77378daed7154ea4f6be5d08f91e655e2d2c46ba2669541879f4eb12685438c29cec29318b201cb772241eaf16",
+ .tag = "b3bdba0875007d81d90564a49ab586f9",
+ .pt = "d1f3269aba5fa97f2b7bc20901a10f01",
+ ],
+ [
+ .count = 4,
+ .key = "9d091827af0fcdcdf216a320a5713170",
+ .iv = "8d",
+ .ct = "bb264042e52c646e4db8fc7f8258706a",
+ .aad = "13428f0c659e777e4ab44a79ce7b8a9a202791dfdeb2a2618e2685028817a136bd6219232336e7eed144afd966022929",
+ .tag = "eef5922aeb898bba77d750db54f14f1a",
+ .pt = "6a68387c8a01b36498641762645c288e",
+ ],
+ [
+ .count = 5,
+ .key = "c4fd6a241a1c05db0376c1fa2967ebfd",
+ .iv = "b8",
+ .ct = "461ca72fb5341c760c51951e62052390",
+ .aad = "c5fa2976ba88fba382b2c1bbc656a134fb59172a37847b57135e9f6d95807372ee670dadd51b77614a0d7be947b1db57",
+ .tag = "1ea4978861fdca403d67ccce00382c17",
+ .fail = true,
+ ],
+ [
+ .count = 6,
+ .key = "85ef89759008672a4ab9b2f60d727428",
+ .iv = "7b",
+ .ct = "cb4431b34568816ac699b68e82f822a3",
+ .aad = "57acbb7b073ceeb5a1b34f76ca49d2dea4c595c0a0767585cc2ede7568e1a4b5f5b37b47be1d29ed4b2de0969f677172",
+ .tag = "4cfb364450fce29a4e1f4d521e0f7816",
+ .fail = true,
+ ],
+ [
+ .count = 7,
+ .key = "132f5216c4533d0e5497c0cca343d02e",
+ .iv = "9a",
+ .ct = "273323e94a953463f6d96767a5fc92d6",
+ .aad = "f8bb96abedc7dde422829730c46eb1491c04bb50320c735d1a6cd980e1ab3940e48775bf39f00e777c5ed8655665d780",
+ .tag = "b345a7c09dfc1d12c68d22c963f712c9",
+ .pt = "9480b076ed6bccd5dc467bfa734e7d9e",
+ ],
+ [
+ .count = 8,
+ .key = "b0ac639bf987c6c3cd0d36a3e1e8e123",
+ .iv = "c9",
+ .ct = "e3936641a0fcb0fa490bfaae83350b08",
+ .aad = "c0ca5e9545978ea6246570fd8aeeabc2920be376f8cfad751cd448897d6e764a5521e3387cc192794d149076ddf8aac8",
+ .tag = "977dbd53723cd2a1941ea6d47cf87cfd",
+ .pt = "ec14aea19f03d7c689498e6940608bbd",
+ ],
+ [
+ .count = 9,
+ .key = "6a8a30628afadc244dbc2b04a37ec202",
+ .iv = "5c",
+ .ct = "17b9c5928f44604cb1b1a57a1b0c49eb",
+ .aad = "553c0a7c8366c12dbf2c7a984efcd3c2376a1aa72d43aa67440aaf517306b5d847617f12de4e93bff0590a248513cce4",
+ .tag = "69f0b1c4f0536c54fa5dd9d0413953ce",
+ .fail = true,
+ ],
+ [
+ .count = 10,
+ .key = "1c95922cd90b7a3cddfbe3baa6ec9e78",
+ .iv = "a6",
+ .ct = "36025fd77e234c9ff7cdee1a1b3dd791",
+ .aad = "d447ddd28e75e1952de1823b2d34d12253c8f7c115ac404b1e4586bd3fd0574c8430978b4c5d62c43d1493d8b5c5e98b",
+ .tag = "afc92819aa5567828e1f7b9ba8a74446",
+ .fail = true,
+ ],
+ [
+ .count = 11,
+ .key = "6c29a2d12dc072f7215782d1d89a2771",
+ .iv = "d9",
+ .ct = "3486afc02579a64e03b1170dd58ae567",
+ .aad = "41ff7280d20540b750005c700d73cfad529fe276a08b8121cdd0141c7b152eba1acebd101939d2f15476142d8ef3e307",
+ .tag = "e510ae7fe11d0737d3928c2a02bfac23",
+ .fail = true,
+ ],
+ [
+ .count = 12,
+ .key = "fd35e6ebabee8d4fbc3ec7acf4457f6b",
+ .iv = "72",
+ .ct = "9c5ba301bda429036a878aa91553fd6e",
+ .aad = "cdc6bfb04f5c89f124f6c964b09735f77b7b6c21db065dfd88eea8f499b68b40ce8f9f8f3dcc22e1a97090d014618efb",
+ .tag = "add9592331fb226254553d438f6e7b82",
+ .pt = "5beefc597815e752a1dce1389144c23f",
+ ],
+ [
+ .count = 13,
+ .key = "2d87cf9df623a5d4dc3a2399129f0c00",
+ .iv = "d1",
+ .ct = "91af627e0b9e956ddc33c33f2f97a548",
+ .aad = "77d83f79d77ed3769a9fe5ccd2013b87420ad245f3e402a65d72544948680c2e8b98cbee6c4653c4cfbbe3bdd74c41cb",
+ .tag = "f7a9527234facc153ac95bd252b542ae",
+ .fail = true,
+ ],
+ [
+ .count = 14,
+ .key = "6942d79ea29ff3f0f2a5212f7fe729a7",
+ .iv = "00",
+ .ct = "6fc2da9f862ca00b1d068cdc563d8d5f",
+ .aad = "9488e28711ab49f57545a1e03ade56ca60b2ec775ad2005c2e6e56fe5669dfcae1836711c3ae623425718b356ed7a175",
+ .tag = "887c5e711cbd3273e25b3a0f94574f67",
+ .fail = true,
+ ],
+ ][:]
+ ],
+ [
+ .name="aesgcm-dec-iv8-pt128-aad720-tag128-key128",
+ .keylen=128,
+ .ivlen=8,
+ .ptlen=128,
+ .aadlen=720,
+ .taglen=128,
+ .cases=[
+ [
+ .count = 0,
+ .key = "6b069c72fa5ab9f5f866e7a7b5d5069f",
+ .iv = "e9",
+ .ct = "9561fdf67f3a160cd870d23674e86b0f",
+ .aad = "2be3fcc3f5a6659a6388826c4c904865a27e5d6b10f9f49bb9062c7a61d3a93f7367d1d04c1b9fd2d40d470e30c269d1e1ab81e9968862025eb8de0fc77d69d0f12ff4be23bad2d65943b500f19f02d97cff6c52d43c8c74f138",
+ .tag = "b1874feae9a5fd3eb53d4e78007d6a45",
+ .fail = true,
+ ],
+ [
+ .count = 1,
+ .key = "af18b65a1fd2a785903396aa7aa1b379",
+ .iv = "17",
+ .ct = "a59baff3abc5871c1404f97d3fd35d72",
+ .aad = "4083e67ad2154adeec549bc4a105295d3656c528b6701e634b209a9decd09a2311cf6d275be52fee85aa38a4b2d524042c08d6e93e8479ad59226cbf7c7b72ad95ce1857af7c76cdbfd76f2426faddcd289fee76677c0494007d",
+ .tag = "8bf65e804ef240abb2c9e7238efcebe0",
+ .pt = "e506442671808c472bdf628be14b8500",
+ ],
+ [
+ .count = 2,
+ .key = "21ff9c9797f97d8fe0e0f9937499b7b6",
+ .iv = "f1",
+ .ct = "038a7022d6008c0c07a5f46045c3b924",
+ .aad = "6faeb1e0ccae508ec831a0e4f3e4c65ad5fe4457b909df7432cda696c68401608ea94198e2401ec107addc86d1bf857063a3a7e2894dc70cdf18706173edb6d38abcfb6b18890856ead6fbfc8a7f2928c4d837ac18588509a163",
+ .tag = "954d4f2919ca8fc3e951f0ea35d5eb5a",
+ .pt = "7e8b28cba5c5144a49151c2b9d55c43f",
+ ],
+ [
+ .count = 3,
+ .key = "6bfbc6f9bac2d5e0ebd957771ab8b29c",
+ .iv = "13",
+ .ct = "901ab84072f9b7c2d25b3194d9c26b0c",
+ .aad = "00d6b3ddacccfd1eb6cedd932b8154dcb1031b5b56bedc23aa818f3d3d573d9b3a7df62d3cf348abb8ddc6289e2c91aa14e7baa12ecd81ffe34fbc152b84d24c3a2ea5d72087b8c2cb937063d3f6179ddd2e751edc1cb1bf7a3e",
+ .tag = "551f0efa0a1bc3b406ba0adecc592aa9",
+ .pt = "e1ca34d93cc0f0500fc25f7773c92846",
+ ],
+ [
+ .count = 4,
+ .key = "d6acd5827ded9cd089b000b4f0232f61",
+ .iv = "f2",
+ .ct = "4593ad4a998f33293f11417baa93e7f5",
+ .aad = "e81810f5b4de8638064c5cdae5bc2e9bdca15280ad5861d618dd1c3dea78224e53b439d39454428acf0ddd63dedf5a98421d2126b29fa82c999e8caff90b0588f627f21f5f301d45d237f43c70ee74830d19275ffaa864ad81cb",
+ .tag = "66c26e36bc7af7d37a8f6f67ebc7f494",
+ .pt = "8309a6cd17d992732a96ac83333204a1",
+ ],
+ [
+ .count = 5,
+ .key = "d4ca4f5eafff82426f17ab9a5ca143b2",
+ .iv = "91",
+ .ct = "ee0ca337d73d7fc3760df3428fb9984f",
+ .aad = "5a301f0c4b09b42eb8e7575c6420746891066d013d42586b16dc3bada3962ffbb73a91b05ab5cf530ea038e6f573e244254089b3a7285637df672b243246381e6c65aa363197d0d9596901606042bc8a1fe8782ccc90009bacf7",
+ .tag = "447080176d91a3ffcc112ea417809b4b",
+ .pt = "af5afd82b37af73e19ca13ec76c30cc6",
+ ],
+ [
+ .count = 6,
+ .key = "5ba6aec293df5c7a0ab3bcf59fc7694f",
+ .iv = "c0",
+ .ct = "49262bcb0be067eef940adb4ca314e67",
+ .aad = "01e73cce6a6109a50b9e8a9288d242dbfda2bb729329771ac4444f470952d2fc320fe877e8b7dc04834363cc6db012582cad32034faf9c062378ff5252748b1ac4ae9da205f451414dd7c58064e742897ddb75b0ad3cdac77354",
+ .tag = "51e1ea67c4e0b41fe4c4e0d03716a0fb",
+ .pt = "3d4cf23922655540b168d0a200980939",
+ ],
+ [
+ .count = 7,
+ .key = "956f0714024767224893b5a6517a7d23",
+ .iv = "af",
+ .ct = "7679df357021d1db49ec8aec3af51dfc",
+ .aad = "553024752e0d8a0735d7429b9aca5cb53314eb755b6ddafa5b1aa5a8768f42bc9b3f4b287117923616864787a1ddeaf947adb824e0529e729b7bd7ea81ad19e0b1cd19739055fd5bf87630ce9edfe710bb7560f6cc54b95184e1",
+ .tag = "58d37f432e61ac615e9ce37402b8e80c",
+ .pt = "f5c1b1358e909408d054b02de459222a",
+ ],
+ [
+ .count = 8,
+ .key = "3ab32f031d5108b234509e92cccc05df",
+ .iv = "c4",
+ .ct = "bf67f27b8ee3d1159158df68c5a6054a",
+ .aad = "890935a22ca534d563aeb1bf78b4b56671af300778558435068e641ddb711acb6e542e14b3f618ac2e3063e31e1fd27e296119d114c18b0f42f63f9e4b0be4f8563193a57017f274393e6039735593122e65ac42030114480d76",
+ .tag = "b0340a088d6b816cb5f6581d57f5b3c2",
+ .pt = "f9da648f20d7884d4430643cfda7833c",
+ ],
+ [
+ .count = 9,
+ .key = "75b66d98d8b0b58c4b3b99848cfb7411",
+ .iv = "fc",
+ .ct = "aa0c7aaec9a70466b160f7a6a3b8bd3e",
+ .aad = "fc9b5517f2be2b01fff4c258dc87ba4528470c4022494210468bba9a430d88fceb63e00fea4efdd4f6240b0d74c9fa61c830bc85df3d159a1360fcdd3adea9ff27257986d3c32d8d5d88c5b5b2bbcd92d5ae8656fba286daf962",
+ .tag = "de6e4b568938eb36675213d30c094909",
+ .fail = true,
+ ],
+ [
+ .count = 10,
+ .key = "2f2fc0211a747c8986384a7b74977d63",
+ .iv = "68",
+ .ct = "5d57952367e4225c7751e4aa6be989db",
+ .aad = "cd1e58fe2b4c04b7a71d041aed968a51efee00a2c2b2c22548a6f4397b9838a7e4b09dd9e949031490e7896498ec760d952ff0a4305a98b887f70e3edb742413fe154c82430a21cbec7b1f1e28ffb55393a1ddb0f01536e2c1ed",
+ .tag = "bb21ef6250fea1e6e31b7a887919ff4f",
+ .pt = "87d037dffc2803d8d3ad0547be0085b0",
+ ],
+ [
+ .count = 11,
+ .key = "29f495182c987d7f7ab908f81572ae9f",
+ .iv = "14",
+ .ct = "3c02b401ef6fc71c24c1dc78184c1790",
+ .aad = "1c5b4e577bb79fb401cbcb6ea4fc8ac0e6c6f6ede34b0c54fc93129388a4e4da9920a09bcc36c7e4a592e736d88759562aadfe0123575255e44967431babcf6649c2b0f16650b1e963c3a9571db120688dda97886bc1abbab7a4",
+ .tag = "df71c600f8a8db522ceb98b028eb2170",
+ .pt = "f74eabcdab4fa876caaa12bbffff3f02",
+ ],
+ [
+ .count = 12,
+ .key = "53df688af22c6f0ab20a984b0d1066b3",
+ .iv = "9c",
+ .ct = "4854880a39196e0ed10b3079d2ea6ae0",
+ .aad = "07c84b97d5082c714309a504bd7af267b7d1806037a187283043b67f126fa4b24e550a379f0ef522e57d8c3d0bc22b3e067186b7871d5d2e7b87dd865ce8304910d9035465b6d0c80359ebf90642137df1b7cf4dd90c65004d14",
+ .tag = "1a26e67e7bf6a52fa42702110019dc91",
+ .fail = true,
+ ],
+ [
+ .count = 13,
+ .key = "1457ba50e841a89db3a9e1290210071c",
+ .iv = "fe",
+ .ct = "979fed97afbd38c36fc198a87af35a55",
+ .aad = "2a8a7e2bb7e33ea775caee18c34a4d5a58c758868808fc360f9d009fdf5900b376d35d4a929d2dd74f04b7f11c3ed31fa9171dda6995bdf8bc6a3ae14b3d44d3c4ac11ffc6c97f68f341d4395e4a64c5eb1ca902860178e3f33d",
+ .tag = "e359e44050d0043f857a24a21541a4fe",
+ .fail = true,
+ ],
+ [
+ .count = 14,
+ .key = "2d8eb442576cc61bc825887a804e031c",
+ .iv = "0c",
+ .ct = "c6ac41c97de216814e5bf4dd0063fd46",
+ .aad = "8dd235b80fca4d897c5dc9b24b658b5bdd8e291b6dc43009fbf2271aabdd024e62c1adafdaaf280bd6d77a1d599ec19043ddc0f91dce052b3ce715e7b2c49d2f13db8e9f681ddc9c2721874af149f3f8eafd869aec618b9731e9",
+ .tag = "c9a9f76e7a8f12978bdb222d66c3cdcc",
+ .pt = "5ff7b254e142bedcbadaf2c4d1365715",
+ ],
+ ][:]
+ ],
+ [
+ .name="aesgcm-dec-iv8-pt104-aad0-tag128-key128",
+ .keylen=128,
+ .ivlen=8,
+ .ptlen=104,
+ .aadlen=0,
+ .taglen=128,
+ .cases=[
+ [
+ .count = 0,
+ .key = "58fab7632bcf10d2bcee58520bf37414",
+ .iv = "3c",
+ .ct = "15c4db4cbb451211179d57017f",
+ .aad = "",
+ .tag = "eae841d4355feeb3f786bc86625f1e5b",
+ .fail = true,
+ ],
+ [
+ .count = 1,
+ .key = "fea9c8b161f140d494000df01250fa6e",
+ .iv = "ac",
+ .ct = "c967363f741d6eec292bdd4af0",
+ .aad = "",
+ .tag = "75d536ca29d6541e5da3b0734ad5dffd",
+ .fail = true,
+ ],
+ [
+ .count = 2,
+ .key = "5b0c3ca3ceaccbc494687eb9fa063d99",
+ .iv = "aa",
+ .ct = "f210bb5a8b1bd10b5835db3085",
+ .aad = "",
+ .tag = "04438284dd30fdad045303b2617d748f",
+ .fail = true,
+ ],
+ [
+ .count = 3,
+ .key = "8803567e9beb731dce79a6ca0be11aaa",
+ .iv = "0d",
+ .ct = "bd1a00185c98938654b23f269a",
+ .aad = "",
+ .tag = "3ffe5440dc53fea374ec53bb1d902ed7",
+ .pt = "94ecedfc7ca300ee5e090dfdec",
+ ],
+ [
+ .count = 4,
+ .key = "22493fb207cf1a7477388082357e426f",
+ .iv = "13",
+ .ct = "96d5c0fa136e506c8f483de459",
+ .aad = "",
+ .tag = "8c9b52f1c879497cca495c8576897a97",
+ .pt = "8d8bea26da79234a2ec973d9bb",
+ ],
+ [
+ .count = 5,
+ .key = "58c929854978ff71bc54ad68ccdcbea3",
+ .iv = "e4",
+ .ct = "ebd6f0b5fa28742377215b7488",
+ .aad = "",
+ .tag = "950c2aea5f08c2fc704f8f765bd3bb45",
+ .fail = true,
+ ],
+ [
+ .count = 6,
+ .key = "605b590368b117ae05414c42608f7a25",
+ .iv = "cd",
+ .ct = "8bd3c8c09b0321848d9381f356",
+ .aad = "",
+ .tag = "31259602478e3ae077b882069709a618",
+ .pt = "973bb3b055b586a704b89a2de5",
+ ],
+ [
+ .count = 7,
+ .key = "d2bbff2caa45a1e18b211098e3899532",
+ .iv = "55",
+ .ct = "e25f92fa72cda895d4e2d0a525",
+ .aad = "",
+ .tag = "74665040d96d2c2bab774e7b18c5744f",
+ .fail = true,
+ ],
+ [
+ .count = 8,
+ .key = "c3c1865b8bd9ac493138baca9cd10804",
+ .iv = "61",
+ .ct = "285b2cd86b5f35ba442cd30277",
+ .aad = "",
+ .tag = "0d26fb8998e75cf95713c6aa88ab85f8",
+ .fail = true,
+ ],
+ [
+ .count = 9,
+ .key = "fa61f8db65fe744e2302710e0ff1881b",
+ .iv = "8e",
+ .ct = "b89f3ae285f817118f34a35105",
+ .aad = "",
+ .tag = "8a16444d39b2b2d642f99fb45179c3c9",
+ .fail = true,
+ ],
+ [
+ .count = 10,
+ .key = "d1b2cca3df86bc290cc0390a3f406972",
+ .iv = "17",
+ .ct = "bc91726dbdf7acfb952963ed9e",
+ .aad = "",
+ .tag = "45bae0e485657a5db92e0054cdfbd2e5",
+ .fail = true,
+ ],
+ [
+ .count = 11,
+ .key = "44b11bf925f52afcf459770dfcecd558",
+ .iv = "8f",
+ .ct = "5e3dc7493df459941879d1a391",
+ .aad = "",
+ .tag = "86a58a86e7342e4b80b1c6ff34eab2e8",
+ .fail = true,
+ ],
+ [
+ .count = 12,
+ .key = "f5b58d6cf4e8faea1f42883a7a56193a",
+ .iv = "58",
+ .ct = "62fb1dcdf7c733272146a05f75",
+ .aad = "",
+ .tag = "12d5364bcf287736b34ca4636baf4009",
+ .fail = true,
+ ],
+ [
+ .count = 13,
+ .key = "aec511e5668057d7cb9a65e7deaf9f7b",
+ .iv = "59",
+ .ct = "e15a3cad060db94320e7438a04",
+ .aad = "",
+ .tag = "6fffe32ebee355c271bee51c388e3f4a",
+ .fail = true,
+ ],
+ [
+ .count = 14,
+ .key = "22883076237161c775493c4f131327d0",
+ .iv = "09",
+ .ct = "c94fdb9beac9a998aa8903ab4f",
+ .aad = "",
+ .tag = "a2f31902a0849bb23099ee62742c014f",
+ .fail = true,
+ ],
+ ][:]
+ ],
+ [
+ .name="aesgcm-dec-iv8-pt104-aad128-tag128-key128",
+ .keylen=128,
+ .ivlen=8,
+ .ptlen=104,
+ .aadlen=128,
+ .taglen=128,
+ .cases=[
+ [
+ .count = 0,
+ .key = "07148b52006dc855fc6aaf1845fa8bb2",
+ .iv = "5d",
+ .ct = "285c22da6027fc121f3cd2f6c1",
+ .aad = "a721c8f9cfc51d7871c3e759c35f8938",
+ .tag = "f0214061557a08a3dec170d9447ed712",
+ .pt = "301f3612a6f8cbcc23facc8848",
+ ],
+ [
+ .count = 1,
+ .key = "844218d8aa8227a6876f190cc3a07fa4",
+ .iv = "da",
+ .ct = "bf9d1b61fd44cdd200118bd2e9",
+ .aad = "f615290b72d79bf03fd607ae02177d38",
+ .tag = "8ffbfe1b0bf821c9dab92311bd3407c7",
+ .fail = true,
+ ],
+ [
+ .count = 2,
+ .key = "be9a94cecb6c529244539ce68a6cd280",
+ .iv = "6a",
+ .ct = "da22808870d2bc6d50f60d589a",
+ .aad = "e252e280d97b6f3e47c41a8b2fc94752",
+ .tag = "f7ba2149d82a86efda10cf65f1a9da66",
+ .fail = true,
+ ],
+ [
+ .count = 3,
+ .key = "68f4b0ff832695e1e2f6b12187c07650",
+ .iv = "e0",
+ .ct = "f2fc6acefc988b9a51e5a43204",
+ .aad = "6539c87c6d3b5d0b8d453a8695ff4dd3",
+ .tag = "1d60a70b18505ceb4cb99401dbee5c4b",
+ .pt = "392834d0ea4c282f28055fbb27",
+ ],
+ [
+ .count = 4,
+ .key = "58c37e41c2e27ae7503d5442be8c15a9",
+ .iv = "bc",
+ .ct = "9fc8eddaa1ad2f1b27771d7131",
+ .aad = "eb6b61ec1f61ad6cb65b7c948d8ed4f5",
+ .tag = "34ea334ddc88a9d4897e8b44c4a6867b",
+ .fail = true,
+ ],
+ [
+ .count = 5,
+ .key = "f6e4a77e6eb9efa467a380bee41f55df",
+ .iv = "c5",
+ .ct = "20536514ed74062fcb5113562f",
+ .aad = "7ac7c84b7719e70ca19340bcf260ebfe",
+ .tag = "96fa210d102b59d42c5673cd565780ba",
+ .pt = "16703594543d33adf940cde6ff",
+ ],
+ [
+ .count = 6,
+ .key = "1264c897e379e2c1ba1709000d5040ec",
+ .iv = "32",
+ .ct = "fc653881f57397ddd1ec26a56b",
+ .aad = "6259aca2042b175c5c07c85661617b9c",
+ .tag = "be685559e2325d674e1b152d64ceba78",
+ .fail = true,
+ ],
+ [
+ .count = 7,
+ .key = "910e700489ec5b5cc5207ecb6c4dd11a",
+ .iv = "9a",
+ .ct = "41a11b35d5438fe8f2475acd03",
+ .aad = "f83c5a125d01ee58eca894ee5d3bf813",
+ .tag = "244f3fe35e26f86ab22902f615405e7b",
+ .fail = true,
+ ],
+ [
+ .count = 8,
+ .key = "d23b13bd5f375ddd84a3d31e4903816b",
+ .iv = "a5",
+ .ct = "04d89f2a71ef8b5b79f1595945",
+ .aad = "3a60de4c0ef766418ccccfb77dc0943c",
+ .tag = "fe86198e94579b458a5210353c94a65b",
+ .fail = true,
+ ],
+ [
+ .count = 9,
+ .key = "9b243b51e3b4369189ca65833a29f8af",
+ .iv = "78",
+ .ct = "e9e7c833b9159e88317aec1f7f",
+ .aad = "a164fef828360213e9c7ceb26995941f",
+ .tag = "9d4079900f5a8657a4daf7442979db4b",
+ .pt = "bb8223436630bf4aa931cfdfcf",
+ ],
+ [
+ .count = 10,
+ .key = "0b197d4683c27476dd3ff1d80ed31948",
+ .iv = "73",
+ .ct = "9e78af01ff1fa42701c97b9d5e",
+ .aad = "9e34d621a75c33f3205bf15ae3b70a62",
+ .tag = "2d682e2a95fa62a05342da530a216872",
+ .pt = "e6ab988e54042a069df66dde06",
+ ],
+ [
+ .count = 11,
+ .key = "945bfced6941ec98f7a23af2e2016d68",
+ .iv = "e2",
+ .ct = "28f16786ad31b2eb737d490a6f",
+ .aad = "f91f73b1e956b5937bbb2fa0310ead65",
+ .tag = "ed525da11a766c54406a3f4fea14bda0",
+ .fail = true,
+ ],
+ [
+ .count = 12,
+ .key = "d7ae2faa0da88be9748c98c05af1bd54",
+ .iv = "58",
+ .ct = "887a5b6772dd73e5a82b8c9bdf",
+ .aad = "6bb16c35b1641e285d5b944b47f83569",
+ .tag = "848adf8445e00a40a21ffdfc28a29fa0",
+ .fail = true,
+ ],
+ [
+ .count = 13,
+ .key = "5b8f2ae83388cd3584792a48776ce2c2",
+ .iv = "c9",
+ .ct = "5db67c27f2cd3d61db2a3b9bea",
+ .aad = "e012d1425be278ead07ec857e4ca135d",
+ .tag = "b4bce7d93fea92e4f2cf8c3fb03a04e8",
+ .fail = true,
+ ],
+ [
+ .count = 14,
+ .key = "f30ab0bc4fc133a445a0ef6223db4004",
+ .iv = "65",
+ .ct = "ff42ed5d8c05b38c627fff02dd",
+ .aad = "54d41e0a5cb353a036783ec9cab7c121",
+ .tag = "72dc5d5acb35722f3f340bb6752a68e6",
+ .fail = true,
+ ],
+ ][:]
+ ],
+ [
+ .name="aesgcm-dec-iv8-pt104-aad160-tag128-key128",
+ .keylen=128,
+ .ivlen=8,
+ .ptlen=104,
+ .aadlen=160,
+ .taglen=128,
+ .cases=[
+ [
+ .count = 0,
+ .key = "c90352c76b2d866fce51d209e441123f",
+ .iv = "69",
+ .ct = "99f01fb7f3f26dc2bfb838d715",
+ .aad = "2dd35bf7263390a86eddc0b1e693833bf49e835b",
+ .tag = "cc67d27f63b7e9f8aa86122a5b6a6b17",
+ .pt = "c52a881d4467b44da233a76813",
+ ],
+ [
+ .count = 1,
+ .key = "593302c520bf71263cd8c14b288c4e9a",
+ .iv = "9a",
+ .ct = "7339082a97c2c9793e0a9a1d3e",
+ .aad = "b8dae0f244b799ce231310d4b2e3d07117cefc30",
+ .tag = "558ac93567be75df6f44de10e1bc48fe",
+ .fail = true,
+ ],
+ [
+ .count = 2,
+ .key = "559a32c25e59fc41b5beb2b40baae487",
+ .iv = "12",
+ .ct = "4e6e8e57f76aec9bb1be7d154f",
+ .aad = "460c20f7cfc3fc435069f4acf6bee7e241fa21ee",
+ .tag = "c1d808bddd06d634fea3a3e515a2f066",
+ .pt = "3912d3a7d6ae47abb5c965a5ae",
+ ],
+ [
+ .count = 3,
+ .key = "95ebe2ac2dfa1f6eceeea6121d70f934",
+ .iv = "2a",
+ .ct = "008da30327959e4441e9042d64",
+ .aad = "ab8a65683e1e3950dc190379efc66409165cc983",
+ .tag = "6da2f24e369bbaa3ff4fb9d9498953f9",
+ .fail = true,
+ ],
+ [
+ .count = 4,
+ .key = "ab2ccd3f52da8e67c37ac29815d96540",
+ .iv = "4c",
+ .ct = "67f762fdc092e2723846870dee",
+ .aad = "077a216a63e39fcc302eed7eb950ce5e10cb841c",
+ .tag = "1929cc380a3cbce85418ab22646626fc",
+ .pt = "fa95fb617e52dfe7d5b6b9b350",
+ ],
+ [
+ .count = 5,
+ .key = "710b1f1dd2dc70773d5cb29a97f3a49a",
+ .iv = "84",
+ .ct = "d1df05d97f26af03d32c9571cf",
+ .aad = "40d5ad35b5eda8ea0f823d7d75a95e5719fbb1da",
+ .tag = "915b9ba511655e40445a073b57d74ae2",
+ .pt = "d93c7d11a72538ac0373f088ed",
+ ],
+ [
+ .count = 6,
+ .key = "372c663f376f585e64f2dcefa01fd17b",
+ .iv = "d5",
+ .ct = "614a7301554f0c0f8769a43275",
+ .aad = "f13f7c1910d15c62db884140fd1ddcc14e1325f1",
+ .tag = "a6dca94264d1ee02890f5a4ea29b9fae",
+ .pt = "10d44fdf171ec4ea2abe3c3f06",
+ ],
+ [
+ .count = 7,
+ .key = "7e3d5ba76cbb8c7bf38777834243969a",
+ .iv = "d1",
+ .ct = "d6b5db2071b8a31b4df660f255",
+ .aad = "6b73a3367e6f34b07766eac0aedfbfbaff25eb5c",
+ .tag = "7b73d93366a97fc41498f0498ee1a873",
+ .fail = true,
+ ],
+ [
+ .count = 8,
+ .key = "9c2a4280ec7ae34a4374c953af6d5f0d",
+ .iv = "be",
+ .ct = "4c82cdeff54851907e2a7eaef7",
+ .aad = "2562dc00ac9b04db972dcdde24c89d4b60999d27",
+ .tag = "9fc3af656d3fe4e4cd63baacb3ea88b0",
+ .pt = "12703d4e186cbbb172e274820a",
+ ],
+ [
+ .count = 9,
+ .key = "e0813af4659e3a64b94be17aaaaab1fa",
+ .iv = "b4",
+ .ct = "9a517fce177577992fc1d190ff",
+ .aad = "36bd5a74535a51c5b3bb0e0755eb05f7f1475e84",
+ .tag = "69e00d44682db93b9a6d168740c9bba3",
+ .pt = "5f605198c31768e86a750b2d10",
+ ],
+ [
+ .count = 10,
+ .key = "5b62d4a3ede6bb0eeaa8e3839a969605",
+ .iv = "75",
+ .ct = "e81cd4acd1f6c559748cdfea8d",
+ .aad = "249abb40136b68c60c28f9f42e77aeb8f0dc5356",
+ .tag = "59a4814e6e91be382d99aaf848e258b4",
+ .fail = true,
+ ],
+ [
+ .count = 11,
+ .key = "b246c4f6426343c6372c11ab3f380390",
+ .iv = "44",
+ .ct = "3bc8654d856e7a5c99be34641c",
+ .aad = "b1176b6287f66a28c1710f487fb82f3b966f6a26",
+ .tag = "452be093b21b4dadc7241455cd2bf9c8",
+ .fail = true,
+ ],
+ [
+ .count = 12,
+ .key = "205ba6794e1562cf23e7da7273277c6f",
+ .iv = "5f",
+ .ct = "3bbee1d3304280fe45f843d481",
+ .aad = "1e5f149465514382286871afa3678d8f832978ff",
+ .tag = "ad880ea53fbb0128bb06e1de378f366c",
+ .fail = true,
+ ],
+ [
+ .count = 13,
+ .key = "2de3e6e1e965f1ffe62896ff1aa80e8e",
+ .iv = "c3",
+ .ct = "2ae14f7801e1ee7d686ccdad0e",
+ .aad = "aae23a9be9829bbc3503a98f1b17c1d9613924e9",
+ .tag = "e9210e9c065317033368d07a8dee120a",
+ .fail = true,
+ ],
+ [
+ .count = 14,
+ .key = "276396e268679504808b9acd62371b6a",
+ .iv = "f3",
+ .ct = "003fb7f823cca46952ee5d2f84",
+ .aad = "689d9909e13c6cd73ad2eab5655ed123c0a11a38",
+ .tag = "ec1e63ef449f4ce343497f82f48b4369",
+ .fail = true,
+ ],
+ ][:]
+ ],
+ [
+ .name="aesgcm-dec-iv8-pt104-aad384-tag128-key128",
+ .keylen=128,
+ .ivlen=8,
+ .ptlen=104,
+ .aadlen=384,
+ .taglen=128,
+ .cases=[
+ [
+ .count = 0,
+ .key = "01914b58a03d116c8c712e7a486ab526",
+ .iv = "6e",
+ .ct = "aef5c564776eda65a31f619558",
+ .aad = "73033a751232fcee225a6bdeb7ea3004a270a306a3e316c308eec07ef25ecb432a003b5c5864d53e9d20b3e2e6572fe0",
+ .tag = "f0b3b71266a8f350965683aaec4fc819",
+ .fail = true,
+ ],
+ [
+ .count = 1,
+ .key = "b4ba34f40a44af49aabb5e8fb88a6984",
+ .iv = "5f",
+ .ct = "f688170a37903b50389d72b716",
+ .aad = "5ab11c1e7a07120c3ab43946029b381c98234edc5c619bf93909743e6713eebd837321cf815503f8e031558515675dc7",
+ .tag = "fc1307783aeaf181c24d306bb56cbc98",
+ .fail = true,
+ ],
+ [
+ .count = 2,
+ .key = "1bf368330aeb45c25abbbacc004ffaa2",
+ .iv = "81",
+ .ct = "44905dd34d7e5acfa2777c9d92",
+ .aad = "f45a8b66b8fb7dce72f689e8bb728596793bf6eeb26ce3174a18b998e00c76fd30c9d46bcee76a00b8f539798ce05eba",
+ .tag = "ab9e8ca18f404f0e01d72cb7ed1ffa64",
+ .pt = "f6c1d95cbebde414ce3bef3ebf",
+ ],
+ [
+ .count = 3,
+ .key = "090e4fbe50c6c58e8e56a33f27d7096d",
+ .iv = "92",
+ .ct = "92e89441eb316d2575fc269d71",
+ .aad = "9fda529207bddbdc194dc1b07f12d2016f20b12216cd9e868f35e2cd1b9ac19a16b6b4460f371bb6c0a284538cce909c",
+ .tag = "e58f5a2624b6781c94c87e1bf38d1f66",
+ .pt = "0eab069e07c36d5aee901fe07e",
+ ],
+ [
+ .count = 4,
+ .key = "02316f0750a88eeb139709ab71257881",
+ .iv = "44",
+ .ct = "679b96be6b557fcdad1d576833",
+ .aad = "79767deb877145a9ceb1eeb063ac41a97adba67f4eb675776e3a781ee765c94ca7e00b8ee45ce1424f4b6fbdc9801a67",
+ .tag = "d84a6c2c8144fd3f2204a7806f5e06d5",
+ .pt = "8abf55dff3dbd5ae5d54fd6ca7",
+ ],
+ [
+ .count = 5,
+ .key = "0d76a88ecf4ad2fab53b18030d011fef",
+ .iv = "97",
+ .ct = "314c1a68e88abcc2337b0d6476",
+ .aad = "e8922a80505b9ae0b38b23844144999d47ae1a1f6272c4405c954f087db4ed4a8e08bf8c8cee2cda1817617bb85cd170",
+ .tag = "55356028f1190cc0581571236d130fa5",
+ .fail = true,
+ ],
+ [
+ .count = 6,
+ .key = "82eb70ea9aad5a303e5f3f16fca15f07",
+ .iv = "fc",
+ .ct = "42e14a010df2cccd5bc434e8cd",
+ .aad = "a96625b33baba517c3a90fb7a1d4361603ba190df70f6bb4f14165b7fb7ee66d4892f4582ac7b523e3ca57545a77c5b3",
+ .tag = "b5d3be429a68758833e3168fdeea36bd",
+ .pt = "85fd23536ec217d3579cb05164",
+ ],
+ [
+ .count = 7,
+ .key = "51a4f9d1ff7157c59675c2741a6a31a9",
+ .iv = "00",
+ .ct = "259cd8cead641ffc19b66e6c8f",
+ .aad = "7c19d2ec7e0bf586e096b75082cc6bbef1593542b4c0f18763f477b26938294e6d450867f7974b31204b8fcfdf74efe4",
+ .tag = "796c2aafd6a0bc941e983317f2a25d49",
+ .fail = true,
+ ],
+ [
+ .count = 8,
+ .key = "c32919a1ec7c91490a1b93e309067aa8",
+ .iv = "5c",
+ .ct = "b51d0d7e6c92e349bab5e67632",
+ .aad = "99741ea7fccbfaf9798cc4395fe4721003dfde21fbe0c57af42710707c11142c40e790e92b4a9dc312120b5adb532cd1",
+ .tag = "6d38add5ddf339fde4e87706aff0f3d3",
+ .fail = true,
+ ],
+ [
+ .count = 9,
+ .key = "5e7709524474167905eab6cda9fe0a2c",
+ .iv = "f5",
+ .ct = "1e8429efd2dbae20ac0e5bce2e",
+ .aad = "072bf43f13d3eed3b79cdc991a702ebdc896b69f86c9543831a36a18f6562ef309a45a2b8798b51aa7f8c84af80f01cf",
+ .tag = "66f21323825af553ba8681d347883199",
+ .pt = "5aa34a0b76e656d50e7e0105bf",
+ ],
+ [
+ .count = 10,
+ .key = "a27207069cc4e78d4f9a8dc5e258603b",
+ .iv = "80",
+ .ct = "63904f2199c0401e3fc33a87e3",
+ .aad = "784f2b9fbae1e5318ed0eca03643b0b4d8258f10cb78644815ccdb991b22db66d8f291eb6f7d50ffb064fb80905d1e54",
+ .tag = "c74794ef6d529af1798661e453e45437",
+ .fail = true,
+ ],
+ [
+ .count = 11,
+ .key = "29ef9b5ac0d4a25304c8bcdf4ab36b05",
+ .iv = "a4",
+ .ct = "bb11c8587c3f6c118a0cc23a93",
+ .aad = "f3b1cddeae931c822e111c6f5b924f1514ee1669de72f18a570d13ae9a1fee0fe599a3fb924522168993a61093447e14",
+ .tag = "6f39d073fc2223ae935161038ae97ddd",
+ .pt = "2cb1b8f03367ebab3c6cb7c0f5",
+ ],
+ [
+ .count = 12,
+ .key = "03760223ec00af3e4599e752286534d1",
+ .iv = "a5",
+ .ct = "7c84307c5452bc153e415c2bb6",
+ .aad = "0d535a6495a62a309e0cca460eff8cecd8b8656c32e8ee9ae94c2d1f2f0cd820cef3334a6e490f1a4d3389de9f1fead6",
+ .tag = "8229dc9835cb233e024a8577e0d0c860",
+ .pt = "eb0916da438438ab34de4c3d71",
+ ],
+ [
+ .count = 13,
+ .key = "d88d8b6bd711e6b5b0f943ebe0a7eaac",
+ .iv = "21",
+ .ct = "d0123f6ad255956d54c1ef2d4b",
+ .aad = "101867b8f430e88eabcbe0118e6153f5317102038000faf59a43bb77de0a3a58440dd5003696c2cd5fa32323fb6909c6",
+ .tag = "1260cf7b4e39c1fbaed80f43a349bf68",
+ .fail = true,
+ ],
+ [
+ .count = 14,
+ .key = "fbf538da582e3eab42f05b7ddd8ed850",
+ .iv = "53",
+ .ct = "67ebdb748ba401982b60310747",
+ .aad = "a76cb92fc3417d7cdd9a6b0664318d3bd57a36728a4766f43aea26dfeb8d12e2a2017fe4bb02a2bba61dc9497dafaf72",
+ .tag = "42dd3fa3364e9c42eb3a9e3d57bea192",
+ .fail = true,
+ ],
+ ][:]
+ ],
+ [
+ .name="aesgcm-dec-iv8-pt104-aad720-tag128-key128",
+ .keylen=128,
+ .ivlen=8,
+ .ptlen=104,
+ .aadlen=720,
+ .taglen=128,
+ .cases=[
+ [
+ .count = 0,
+ .key = "a9f1423885d094226487e2ee66218158",
+ .iv = "92",
+ .ct = "edfc0d8d2ae646fcb86e78e43f",
+ .aad = "3d0d7048a5b7ef86d6dbe0e9a6d257d30f1235a8f3867880f7681238d585865cc9772ca5b824cfb22f42d3f145dc3298068f2a879610df9ac3e79f0d78e07e044843e018a35da39c11dd798625ee3a10aa00c9c6a7fa84312293",
+ .tag = "dbcb6506b5e1c6b29c59d1e730b29da7",
+ .pt = "4471c8fa4c596d2c9142901200",
+ ],
+ [
+ .count = 1,
+ .key = "00f9c984af41fdb801f150b91ba3f129",
+ .iv = "fc",
+ .ct = "a9986cd01a18e3da49a18b2377",
+ .aad = "1c7e822fe3a0a5bffb44af3590b3d7db1418df42f369a8dfdd8cc1bd91d9452bd762c6d2fb1097457dfe516f3f8923369390b7f84093dc95d55df3a1c40cf486af5b17de1208ced6b6e59d750f43580b39f485b605922277ba9f",
+ .tag = "4494345687070d156270e5866a1ea743",
+ .pt = "2ba84ef6fc7683feffbe1bcecc",
+ ],
+ [
+ .count = 2,
+ .key = "d13df777c128e584275b8e587f799119",
+ .iv = "bd",
+ .ct = "d97278d1b0b620880556c99a78",
+ .aad = "649304125db87e6569811c9d1b65769f9329c286dbb3c23ca1a1c5751677de4a15dbe8137a399c1efcc5130a309275e59aa649255c25760f5030f0a78a97a5497072f4d5fbb632b1d433a0ccc366e4da597b9684855c921ee8a7",
+ .tag = "85ebb9f8875e6d4e6fe70937182b9021",
+ .pt = "6f587aa80c41c2db8edf49e959",
+ ],
+ [
+ .count = 3,
+ .key = "0088de07b48b3a52f292ca3b68c05e0e",
+ .iv = "fb",
+ .ct = "d4532f8a408c4b714de7337bbc",
+ .aad = "328db3fb26bd4be08e994a56fb32d575f61345c24bf367de3f3dddff7142ed109711bad0bab885e411e037e22c5d86d4efaa8ab2ce37ec736a337642c34bdf81a87e47eff049c4e87d4f7b4e34ad5b26e354205c3b978a847479",
+ .tag = "15343840696e09ef640c98306c86e411",
+ .pt = "bc565a3d57df8915f372117655",
+ ],
+ [
+ .count = 4,
+ .key = "4c69a196f4a5246b89a6c2f3e0482a63",
+ .iv = "91",
+ .ct = "38c4747ae233df6280a2fe868b",
+ .aad = "1484ad886135606932eb5c0556d7bed6b3d5c14cf2c9a73a6ec130a45b6555dadf7d23ecab725b43052489d8507843012b5bc34f6dec3f9980d7de6c98717ba1a5e9c07bcaf295ebb77605cefe7a44ab99e576528e02f5b3c033",
+ .tag = "69651e5333c98f5b81e6166162dbde82",
+ .pt = "5ccb3b993c13a14e05a48d6e7b",
+ ],
+ [
+ .count = 5,
+ .key = "c206592f8f5a252c324c0f0358ec56c8",
+ .iv = "0f",
+ .ct = "cef565f3a0373c78d4c38729e8",
+ .aad = "60bc1bc45109d5a08bf8d1bc849ffd29210883b66ba3cf96ca8e6791174c6e58cb4e6f48720c97156d12fac42ca9f2f75f0e5880832848acb30c793cb2e1bc62bc71d211e80c6220f45dd6c77bf26fede4d7292795dd8bd776f1",
+ .tag = "66d7ab239709abbe064198b126c86339",
+ .fail = true,
+ ],
+ [
+ .count = 6,
+ .key = "0c7430fed9bbda1788e199486ae43bda",
+ .iv = "de",
+ .ct = "6be5ec32315bd5a29a6aaf0980",
+ .aad = "b0192e65dc2f8352d61b2a23716b7f809860cf91510a1f66802139b1d344232d8439a33fab07eed5a64a8bfe8e3e7dadf7ea2c38e64db188082c11f890948593c37e31db74258e4121c6bc2f13ee0299adcde1de8c38631ee15c",
+ .tag = "6d3dba6556a905d85883379132233714",
+ .pt = "b92748fe86195431952a93c011",
+ ],
+ [
+ .count = 7,
+ .key = "1cbd4c987b8a1574afa68cd911cdcd16",
+ .iv = "78",
+ .ct = "66684142febb8d084beadb6bc7",
+ .aad = "ceb44e44755b9b60a3450a4bc5483b9c908ecc99d9e5b089cd3ba16107e69042450a5320c9cab5b53ce24f48ab43d3abff8fab20c74354d91a021e613aaff207f015faf3824cc4aec53dd34b3d6832c1fd9ea8dbdd673cc6d27a",
+ .tag = "92f082ac30ed1d29515556039eba3cc5",
+ .pt = "de80bcd8e524d9fa8795b0924d",
+ ],
+ [
+ .count = 8,
+ .key = "126c15b2c1fd69ef102681305fbe7992",
+ .iv = "ce",
+ .ct = "c617b546f0bb50b1fd16ad1c13",
+ .aad = "2d3bc04fbe425104b10ceecc779d51dedd4c85efa13557d8a07946bcb560b64c68cc40b97e0e91ccff6adc471984c43ca1002eb1535d1eb0592279037f1ae4545cc38f646683d45bfe3511a98af23245930a6ed86b33fb93330d",
+ .tag = "e9acafdbab27862e7e771bc4c46a74b3",
+ .fail = true,
+ ],
+ [
+ .count = 9,
+ .key = "e04bb7e9e91fdcfbe7663d20a28449e9",
+ .iv = "fb",
+ .ct = "5fbd4cb14e9292a9d045bbbc11",
+ .aad = "fff01773739390028b78438149613bcddee86bfa84a45d79da19ef1aa2b8d894eed81c704c8a5ee542fc0b627fcc9a1877953387092478cfc9e0ed29754f105e5485488aeb6e3f59cb940952ab8eca9d4de1dd95a1508e4ef85c",
+ .tag = "72ce7bd6955a8cb33a4ad6c3e5c9fb42",
+ .fail = true,
+ ],
+ [
+ .count = 10,
+ .key = "a07046dc548118bbe4bdc1f3baba20f2",
+ .iv = "62",
+ .ct = "2ce0980190db47784e0c9f7a69",
+ .aad = "70f9f2bcef8befdbc2f0e87a32936dbfb652d7edec19b6815bc6dc0f2b9b06278fe5346ef3743562c30f6bfb7047bed2bfe35a8036e9276b48bcb55535cbb698d2f0ba9bf3ec890f2038c53ac3de0382158c52fd6115ea2f185c",
+ .tag = "99fd76887ffa23411f19e060e6634a29",
+ .fail = true,
+ ],
+ [
+ .count = 11,
+ .key = "8ccf9b74406da0178476f9a927faaec3",
+ .iv = "92",
+ .ct = "8c969bd82af6123b210e1ebc7b",
+ .aad = "ed1899750c6599c8dea97041b30c567588144744c5bcb0187d4a1960fe93ba905261a15e8f7a46b1bf957a397252acc5dfa12afa58a7c270e896d94d3d48a147458286a56cf55189d4b6e213d1f8004be5c1beeb53ea2ba4d29e",
+ .tag = "6787490a92434ee67a62711699176911",
+ .fail = true,
+ ],
+ [
+ .count = 12,
+ .key = "b332347fa65beec006d33c6be2033375",
+ .iv = "3b",
+ .ct = "0d75bc263697e68bc3eb18d9e1",
+ .aad = "284af0301ca126d2a6bb67db95c0d6da2b46a416e7a5e58e6c1f7fb899ce4b16ab3f8586d2da0541d03dd239641b52d1501cea493c4e1fac471fe73b6f6533caf0043ed172c18416b46d367fe4b5317264779277e3ccd4004b0f",
+ .tag = "43b4bf182fc74690bc1614b91f524186",
+ .fail = true,
+ ],
+ [
+ .count = 13,
+ .key = "50af9f392ed5280b0e62fe72990f769f",
+ .iv = "6e",
+ .ct = "f33dee5e4a5a87f769348643a2",
+ .aad = "aeb888ebd7f69d96d681bb0a65a179cf4eb9dfad5ea7d8793aec1a2a856ff94c20289b18e85ec3bc619c409a9a166ca4fab0200f9667f2cf56f728b03d9a28cc17a00a1a7ace65600030694be2a5de01ab555be2dfb73ff505ef",
+ .tag = "3a8ac1f054de08701bce82e877a03283",
+ .fail = true,
+ ],
+ [
+ .count = 14,
+ .key = "83d8ec7f1e7d6f8361a1f7fd32c3d8ac",
+ .iv = "ab",
+ .ct = "01e4e7688f5649a0941787110d",
+ .aad = "5af8d225bc1a676e38fa07245c7dcc162f4be6ab75c855dead0f304e28d963c923e49e984065ebe0e7a58faf5e1ca36716a87872eba87299cf8af903103c1b3fe7c17cb1d03910e198a48827b17e0f89518a04df5ed64290c127",
+ .tag = "35e5c690be2d2eb20276ab6baaa6fae7",
+ .pt = "e111b7179bb2b9eab690fbd184",
+ ],
+ ][:]
+ ],
+ [
+ .name="aesgcm-dec-iv8-pt256-aad0-tag128-key128",
+ .keylen=128,
+ .ivlen=8,
+ .ptlen=256,
+ .aadlen=0,
+ .taglen=128,
+ .cases=[
+ [
+ .count = 0,
+ .key = "591e1b505e38fdd64e7019b049222ee8",
+ .iv = "bc",
+ .ct = "f5bdb5aed557e17be48a7afa3f64e35eb10dd08b88e01bc1d6036fbf08965452",
+ .aad = "",
+ .tag = "9027f3d3e90745c7ca3ae16211b176d1",
+ .pt = "2093f75ec698204f94a571bd938629dd6b053b69fe89999750127dbb00edde33",
+ ],
+ [
+ .count = 1,
+ .key = "e8d2960b4db3ae1df79198de63b943fd",
+ .iv = "b0",
+ .ct = "a76f5160fd1e716455fec00901e80296e55a0fef8367baf0b59455279078e687",
+ .aad = "",
+ .tag = "7603dc3a1eba1f5d7e748b9b28ec16c3",
+ .fail = true,
+ ],
+ [
+ .count = 2,
+ .key = "0aeb229f005a6e78ae5dacc26f339620",
+ .iv = "ba",
+ .ct = "c4e6de2205033389ce229f597d74834f65f8e31ac1bcbfdabeca197d5b95f429",
+ .aad = "",
+ .tag = "d4effb1c7add5bc93c228df3f253ef39",
+ .fail = true,
+ ],
+ [
+ .count = 3,
+ .key = "e74b74b689022fe192bc7a874fce557d",
+ .iv = "f7",
+ .ct = "4d828c3d633f14439623a49dadc1653f4737cfe71d7e2ba92810758ed565fbae",
+ .aad = "",
+ .tag = "01dd8affbe471f72c2f6285e1b831ab4",
+ .pt = "17511051d0ae50f77ef19fca81f16d96dec6be986d0b2d9d144dfb9371de692d",
+ ],
+ [
+ .count = 4,
+ .key = "99ae15d26f7ced0c0045d7b3f23bbac6",
+ .iv = "dd",
+ .ct = "06e8f62d97e7b0487b2d408f34044751a3c4ed4c290fb2758821553eea54323b",
+ .aad = "",
+ .tag = "2d54afdcc6ad661cd8a5f4b485c70f00",
+ .pt = "1e6cbc2ab44b447421f9917b8b70240ea208cac17d6aa3e7e9a5b096b671f7a7",
+ ],
+ [
+ .count = 5,
+ .key = "f77277a9c6195fca5d1c0fe22c95adc7",
+ .iv = "da",
+ .ct = "41a6ba3648ca812966f74742afd81ac813f1a825c781a66a384ae7c1c31c6bcb",
+ .aad = "",
+ .tag = "17cbc21260006b05895a90b2993478f7",
+ .pt = "cac25e0c0a5f25b8a5d4d54f34c8ad5d2067c1fba2ae73481d09978ba8ad6524",
+ ],
+ [
+ .count = 6,
+ .key = "681687f303b4988a4195357645a269fa",
+ .iv = "bf",
+ .ct = "a090e0cd6d4412b1694a264b86384789cdc2f5a12b17bb05a24841be69040d79",
+ .aad = "",
+ .tag = "fea092b2fb98ba44cab53461e3a367fd",
+ .fail = true,
+ ],
+ [
+ .count = 7,
+ .key = "71e7f922f6cd6f9a910de857d23b8f6a",
+ .iv = "89",
+ .ct = "9cffa612f9fd48a99fcca8b8992ff2bc276331a49bea8b23f786ec163aa604a6",
+ .aad = "",
+ .tag = "a9e234a24aed7e628e29c456c73b7dd9",
+ .fail = true,
+ ],
+ [
+ .count = 8,
+ .key = "d2bd79a922d7ec8ea72958478fb9f36f",
+ .iv = "a1",
+ .ct = "40e78a3ef99c072af179e8be6d6b5f19224dc38863ad1dc5de843d9c8b5dc1ca",
+ .aad = "",
+ .tag = "f39dabc91fbca7f153b30933f6d60fc2",
+ .fail = true,
+ ],
+ [
+ .count = 9,
+ .key = "f82f64136ef7565f4630328eaee7f9a6",
+ .iv = "49",
+ .ct = "53be12505208dc12b054059f87e49a0e805139394dd8449d85cb8cb3adc11a13",
+ .aad = "",
+ .tag = "afe61eebc782ca9ce0ecc90cd291978f",
+ .pt = "756112272ef75826a0a7be95608369fa75a704db9b1781e1f82de389d43b5b47",
+ ],
+ [
+ .count = 10,
+ .key = "96f45efc32888eeca61beba2238c0cf4",
+ .iv = "bc",
+ .ct = "f36ac5c69c704684a4f5109939257a442ca6f2937a2a4aaa692aaafe0daa951e",
+ .aad = "",
+ .tag = "ee31ab4b2c179f2dbf61d2db57381bdf",
+ .fail = true,
+ ],
+ [
+ .count = 11,
+ .key = "9be2960d0b6dbec941e8c003ca87d9ad",
+ .iv = "9d",
+ .ct = "9a5cff51aa690abbb2a9f5be71fc2fa1e703576dda4f8831949a63e3f971ea43",
+ .aad = "",
+ .tag = "2f5dadb05349d79ab07afd2d8abca0a0",
+ .fail = true,
+ ],
+ [
+ .count = 12,
+ .key = "66018593618b7ea5c50f9507a41d3dbc",
+ .iv = "a7",
+ .ct = "40f6cadc596ec03633440a31a68557f195e37b75306b3ed2ffd7ada2767db7d4",
+ .aad = "",
+ .tag = "70bc1faace712b4d865f46b4848df6ed",
+ .pt = "387a64d6a7a67f2382abb83cfedb7ec9e1557151909d772ffebd17f275c13201",
+ ],
+ [
+ .count = 13,
+ .key = "54e2261b2ca119d73c104f8be6b07891",
+ .iv = "7c",
+ .ct = "0d318d38d6340557ddb43725a568ffc9b88f4897bbf2c60406ad74e7f1b49075",
+ .aad = "",
+ .tag = "7cfab9b7e5fedbea657ded3e6e5627ac",
+ .fail = true,
+ ],
+ [
+ .count = 14,
+ .key = "b830faac69a690b1b6bc7df599104f9d",
+ .iv = "20",
+ .ct = "b79c3e9796829d1a4b8dbc2580315a09682cffc9ea257deb584bd92a627485aa",
+ .aad = "",
+ .tag = "7c6079495f42ac4463ac4ba82fc3abba",
+ .fail = true,
+ ],
+ ][:]
+ ],
+ [
+ .name="aesgcm-dec-iv8-pt256-aad128-tag128-key128",
+ .keylen=128,
+ .ivlen=8,
+ .ptlen=256,
+ .aadlen=128,
+ .taglen=128,
+ .cases=[
+ [
+ .count = 0,
+ .key = "5f69862dee980b78bdbb0ae7913dde13",
+ .iv = "39",
+ .ct = "c17fe13a6b2386c0de72efeb106e3e656d1e4d2dd90fdaeb742ea46ee796bb6a",
+ .aad = "d43d3311ef823b373fe6420244db08fa",
+ .tag = "4cd75bf1d0ab0f14c3e19c9a3e3865de",
+ .fail = true,
+ ],
+ [
+ .count = 1,
+ .key = "750c713252832da698e67fd7730d03f7",
+ .iv = "ca",
+ .ct = "00e538def53032df38763186c2c03402bb54baab70aa7d25e29d31493585337b",
+ .aad = "eca66a1a2cca5e3afa4444a8388cb639",
+ .tag = "87b00e3d89bacc6a01f45e4d8947bfbe",
+ .fail = true,
+ ],
+ [
+ .count = 2,
+ .key = "af4e9cfd5437db1531185574723c8bab",
+ .iv = "e7",
+ .ct = "4ffdad7bd37503130c2dd09db43322235828931722f821be6e576dd0feb69809",
+ .aad = "3fa28cdf41eadccc7ab78a99f5189c26",
+ .tag = "5e2361d2777cf434d2f1c374b07da6c0",
+ .pt = "fb0272c27498723fbe494bc45a9d39110b5b454c3d596d4d4cd93b2ea571c5ba",
+ ],
+ [
+ .count = 3,
+ .key = "d9bbf29dde4c68354171669a75c0bbcd",
+ .iv = "5e",
+ .ct = "afb8b63e23297b974b805cfa73e5b6d91070c2dc7c15275792074e6bc3972be8",
+ .aad = "a91a226b69a64851a439d4a5cebd2816",
+ .tag = "2222c53df32e705c59d7c10cc0032385",
+ .fail = true,
+ ],
+ [
+ .count = 4,
+ .key = "91dcb8b87d9b7c75932af0a276fe098c",
+ .iv = "fc",
+ .ct = "d522451e0ada4e954d74af1d520eacb0f890c176e293fa6833e54004670a31d4",
+ .aad = "2195ac7b55d8214521381d0069049c16",
+ .tag = "22eb160c2a72d57de3b1c16cc7001dad",
+ .fail = true,
+ ],
+ [
+ .count = 5,
+ .key = "fe820f81c2279dc46a82027e606c8775",
+ .iv = "9a",
+ .ct = "45c426d9451d17246fc814381d5aa26d5af4c0eb75fb4116c7e8a814025dec8e",
+ .aad = "4d2a2784923a0700eedd630304757314",
+ .tag = "30a44f3a85e92d5018462744b1382c9b",
+ .pt = "e666ce50d6733f95d33fc95d4745cb461db55d496b81f470dde69902687f5a09",
+ ],
+ [
+ .count = 6,
+ .key = "64586e6e6dd21f1c09b21c26619703db",
+ .iv = "9d",
+ .ct = "050595a17e4857b945df36d213e561ce16d8c1710e6377fd5d8ea87677d58e8c",
+ .aad = "480b2b1e5028b2fd30e0b4b16f29fe75",
+ .tag = "93d1b02ced5e2c2ab228bc0b23320ab2",
+ .fail = true,
+ ],
+ [
+ .count = 7,
+ .key = "67a48f4e48e1c58b0fbb682701e7c41d",
+ .iv = "45",
+ .ct = "8e862e1c9eb535a91872d7b5197dfd4a381c194dc8033845c17d38a43e077d31",
+ .aad = "1a1b47ec04c6cb955dab3407b7fc138d",
+ .tag = "f1ceb4ac4b6f189863a160457e2ff8af",
+ .fail = true,
+ ],
+ [
+ .count = 8,
+ .key = "ac713b90ca4b672205fd27ca1d42add2",
+ .iv = "14",
+ .ct = "3aab5976b79442a8a53d287798c53432385bcb13cb228cfa08a44cf8a0a8a543",
+ .aad = "22d323e35b3ee5ad562cdb34ec4fc17d",
+ .tag = "8bfb581f2df18acd960f5ee6b902da98",
+ .pt = "e05b2b90eff248b6009bb3a0510636ac75f67f268fb679433b0763620e85a83a",
+ ],
+ [
+ .count = 9,
+ .key = "41fda6e71a7a3d1c24c6afbc88990082",
+ .iv = "ec",
+ .ct = "622403f9c61a69430e962849f3df02b7608dcd42e6f7fdbf54fb908dabcac72d",
+ .aad = "081e2818d1f4e59aab317ee87acbb470",
+ .tag = "270223f85ed2f13a3322b9ca3ce49a2b",
+ .pt = "d6346b788504147161ad9b3ecb8ac1a720c10d93c882c934e3372e09884b5117",
+ ],
+ [
+ .count = 10,
+ .key = "fc5b27055251d34954a71098c647cf90",
+ .iv = "bc",
+ .ct = "65444649dd5f36ef37210feaebed1389b45a010cf35ab4546cc47ea58795525a",
+ .aad = "e4e28794e9a5399aeee34c687233a7dd",
+ .tag = "52257ee5157261f610106b9809ebc4b1",
+ .fail = true,
+ ],
+ [
+ .count = 11,
+ .key = "4e4bb6c5251b4e278dff02e219ccf57d",
+ .iv = "18",
+ .ct = "ae7cb7dd4423ab07cb235a994a20d7fbaa688577987671fd5a1082c7b4110a01",
+ .aad = "9f9e100c92ae165b2f54bd283a22d6b7",
+ .tag = "e35f1affaeed73b75a463ca3d13373bb",
+ .fail = true,
+ ],
+ [
+ .count = 12,
+ .key = "a5062e526962e78de6eb5a865cec6e49",
+ .iv = "7f",
+ .ct = "24009f98b0179a7003b7962db618fdfaf3d0856aae3ff111ff4c272ea4ea0e9f",
+ .aad = "07577b33dbc181941c037476313f1fb0",
+ .tag = "1146658c84cd0f8718b982ea9ef4f9cc",
+ .fail = true,
+ ],
+ [
+ .count = 13,
+ .key = "db325ef758298148d6c9a099df629f63",
+ .iv = "84",
+ .ct = "b0afbe5c61678c518e1b3ba5dfb844f802ac60736e8ed753e63526fef127bbcf",
+ .aad = "0a0e002522d453d117d5bd37fd6a6fdb",
+ .tag = "24b71d6aadbafec7583bd39a56edab75",
+ .fail = true,
+ ],
+ [
+ .count = 14,
+ .key = "d68bce17c8a3756b1c00404a5d0b26a9",
+ .iv = "79",
+ .ct = "8ae79fb27799a94ff05bb5c1035592f3ffe1893f83493f57a0ac50c7cb47b1db",
+ .aad = "dc732ea45761c3c9c17c35f2a089015f",
+ .tag = "2a7f55edcfd0d70b96db699f6b64e161",
+ .fail = true,
+ ],
+ ][:]
+ ],
+ [
+ .name="aesgcm-dec-iv8-pt256-aad160-tag128-key128",
+ .keylen=128,
+ .ivlen=8,
+ .ptlen=256,
+ .aadlen=160,
+ .taglen=128,
+ .cases=[
+ [
+ .count = 0,
+ .key = "348bf555de5fa4a1ebc999bb560cb3e6",
+ .iv = "f4",
+ .ct = "05deb7ef892e3719fb0a5203499216425893d1aaaa32b20c1df6427d90ed6c41",
+ .aad = "fb75cd25d185c6e21b94768161cd7429107fc5c3",
+ .tag = "1c2d2c8dea57017d99abd68fa52a297d",
+ .pt = "e2b18d3caaeaaa6f85f861408d95730601871e1fedafe5278f5a7939ea887783",
+ ],
+ [
+ .count = 1,
+ .key = "e549124e8902389cb0283a772aac3137",
+ .iv = "a0",
+ .ct = "4adbadcdae6e2386e2609215f3355864166af96fe1cfa24c96f7996acfbfcf96",
+ .aad = "a098d968231000080498cff97b578e079c4ae4dc",
+ .tag = "095535398a00c3b42dbc1265fdc539b2",
+ .fail = true,
+ ],
+ [
+ .count = 2,
+ .key = "5c54d07f977ee276feb35e2fd609571d",
+ .iv = "a6",
+ .ct = "95be157242be7fb6baf7f28bcba4663f43a5214ab9eab4454b46701f2d7b5ae6",
+ .aad = "f0c659a5d6ddd50108ffea479d0b00502cd4a605",
+ .tag = "edc4077082cd0c7e71a8291b4ecdfd3f",
+ .pt = "148a0b3ea75d16a7546dd30ce77fb32bf810a142f0381079a4e1567318391851",
+ ],
+ [
+ .count = 3,
+ .key = "bb974f86f27d9b0116babe0f3b93b953",
+ .iv = "6a",
+ .ct = "2def9be4cd81e0de9a3c699a1053a42b4d814f8a32846326fda3759b4faf3796",
+ .aad = "c651935ede25ff5e17cbc2357cc1533f26672796",
+ .tag = "9e0545d0e206b70e633bf8db644a8966",
+ .pt = "f0654d1958c392c8e570d67bc02461acc2880a9ff2f73ccdfde9d3cf018d4f01",
+ ],
+ [
+ .count = 4,
+ .key = "064217dcc66f80349b314a78dfb5ef44",
+ .iv = "8f",
+ .ct = "aaeadbe2e204b2f6c8213feac63a8b81d132fb640cc4abbcef37235f56e83472",
+ .aad = "c63866971e5d256bcc53c3cc798b4ba41afab0ec",
+ .tag = "d03c793e157201dbe9d53035b7857cfc",
+ .pt = "4187b17658f9e2a2138d2215e0fc201c75d6beb8af975036577e179b39b657d8",
+ ],
+ [
+ .count = 5,
+ .key = "9a93faa257f6cd9bdfc71ded2ffa0cec",
+ .iv = "59",
+ .ct = "be3638ef2a87cf3c4c21eb99c843c5d200cacab28f18d5088f9abd718093989f",
+ .aad = "e86d39828c715db3a0003c836561ee16327bde7a",
+ .tag = "e4f2d0389695063773901b54aad2355c",
+ .fail = true,
+ ],
+ [
+ .count = 6,
+ .key = "52f08d70eab9a0866f42b006f9e6688a",
+ .iv = "fb",
+ .ct = "b833ed9f4297246c4994f224427793622255ebfe91b92541cc30bee3439bcd7f",
+ .aad = "d07de0ce093533f7fac7cfad305e3ac563cdf00a",
+ .tag = "f2f45e837beffb7031c1a056869de4d7",
+ .pt = "5e9391ca2d6318abf9c70e397dbbd7081592de9e93bf6d9466b462133edb8787",
+ ],
+ [
+ .count = 7,
+ .key = "31aa4352f1ee25a185c66d6f7bb25694",
+ .iv = "4b",
+ .ct = "73db78b3d8bf451388db2309650d30c3216d786411ae3b35455df9dd95519c07",
+ .aad = "48bf53bee159bfb2a3638a20aac0a00dbb7c59c1",
+ .tag = "78fd8d3ad133ec6b34d6c13d1d83430b",
+ .fail = true,
+ ],
+ [
+ .count = 8,
+ .key = "8184ca0e418bf82b5c6a6ad87de1568c",
+ .iv = "f0",
+ .ct = "7815e5e6d8e93c8a96c723d827f246dd3e6b891f3a5c1364350fdb4448b91401",
+ .aad = "1654dbce170306d6db0298a56984cb4d3d0c566e",
+ .tag = "3ec3b6843518442209eb83d6204608ce",
+ .fail = true,
+ ],
+ [
+ .count = 9,
+ .key = "1bb29c2cf912941aa33536a5b32a047e",
+ .iv = "49",
+ .ct = "9be32ac5d83fd7ec133d6425cad9aa7c717f28b06f21669b5c14dd2fb2d97686",
+ .aad = "773ba7e423d7f02d0c5a461c69369992b7ac690c",
+ .tag = "b0419f3ce56ab7d4934422191822e960",
+ .pt = "ad31c5bd73164c407d7740a135ed75de176562a0399d9b0d3ca2c4ddceda507a",
+ ],
+ [
+ .count = 10,
+ .key = "8c7f07388a11da012106131671ef07d6",
+ .iv = "a4",
+ .ct = "a5c6592ba2b4b9db049ca52bdb720034ab5825db8c2f0ee52ff01dab5fc35ef4",
+ .aad = "42771b9d5dc954171dcafbfc72fd5d0392e2837a",
+ .tag = "d413a605fb184d25241d5e1f75682cb5",
+ .pt = "6936937eaf294f94e697a411758c6c85136c5aa7bea49621a1987133b6822252",
+ ],
+ [
+ .count = 11,
+ .key = "c6d336b31ec6dc024baee820dc8012ca",
+ .iv = "ec",
+ .ct = "ea6b65c6673697fd0a3a47704a7d3719531c17777fe3ffead80b6112a17e691a",
+ .aad = "4f2bbe6a9cc6a47db98cba5541fe01a250cc9f23",
+ .tag = "4f817b2fa107ff793c75a861149b44a8",
+ .pt = "a3e608438c01a3f88451d9246611937a241649eacddd3a421eae46e564d780ef",
+ ],
+ [
+ .count = 12,
+ .key = "58ad36561fd41d4fe17879be782d3392",
+ .iv = "bf",
+ .ct = "d8cd05e7b4f75a56103ee9951307339bf22d4ac0f0dd7f7a5294a3b810d6093f",
+ .aad = "da94c7caccdbcebb69783afd7848e42d873de222",
+ .tag = "4bd7d3327672c2e8e522243cd06b9b16",
+ .fail = true,
+ ],
+ [
+ .count = 13,
+ .key = "e50369f504d3013035034f79b3818194",
+ .iv = "f4",
+ .ct = "611595872e2e013d61668afbdb8e39e5d550216d8d9439682e8b2ad15f14cf44",
+ .aad = "b37e8ba0c17e0e5bfae04a5429567b9d355519ac",
+ .tag = "f81364ba69b811ce0b5dd29d9dc12ee4",
+ .fail = true,
+ ],
+ [
+ .count = 14,
+ .key = "290d87317869015dc1efb260174e09d2",
+ .iv = "96",
+ .ct = "5eaff8ec25b35db611cdba819fcb748499296564630622e1f0367f2d6d34c21a",
+ .aad = "499233831a890b3324ebabcd3662811b297b4807",
+ .tag = "cf1608283ef8d8e1034bc87f37c4742d",
+ .fail = true,
+ ],
+ ][:]
+ ],
+ [
+ .name="aesgcm-dec-iv8-pt256-aad384-tag128-key128",
+ .keylen=128,
+ .ivlen=8,
+ .ptlen=256,
+ .aadlen=384,
+ .taglen=128,
+ .cases=[
+ [
+ .count = 0,
+ .key = "9b8609d272d5e5b38d958a6ef1f8cd11",
+ .iv = "48",
+ .ct = "d54ee56374d65c32fb026058e47bbf046b6521be4a2358b57690fd5c34d78d0e",
+ .aad = "b49e8fb97e3dc844e2475d7eb3c79f337abba5c9273cb7d38fd009e608fb6358683a39709fafc1eb0a26e4b105955335",
+ .tag = "998089036a3a20e07785a331f93d5cf2",
+ .pt = "5bc78d0a9d390c30e88629578b696b6e0271edaa0b86e515115143ebb5c8ae61",
+ ],
+ [
+ .count = 1,
+ .key = "0424bebe87cec1e8e2e0c72eaa13e0ae",
+ .iv = "41",
+ .ct = "4bad2d79ec2f429bae1d6b7b1a491aab41da9de3ee6d39ddb3b7a99b2a1ffae2",
+ .aad = "fe067529d56f19d773ab107a30b3844815a18e1ef088f267f818b90b18c5191239efe441198a2274a7cad717986b930c",
+ .tag = "94cd9a652e2dfa5b804cfa2e2c153e33",
+ .pt = "3f9a6b60f81ef7e51c91c1ed3e8a4caecff7db78859ad12c65e8f7fd860e59fa",
+ ],
+ [
+ .count = 2,
+ .key = "7a3f47e7a4108c534feb1dba0ef01689",
+ .iv = "58",
+ .ct = "750e23e40d2827e5085bf562b7c526b3c10b6ca632392c91f1354eb8fc958e09",
+ .aad = "10e18c7ef527f71366828b08084a3d695cb51b7d8f9675ea650503da04e8646155e8df742b6b3155d2e28246e8118fb4",
+ .tag = "31c7f04cacff130afc472b2bb45cb846",
+ .fail = true,
+ ],
+ [
+ .count = 3,
+ .key = "f1b1fbec6fce7657785cd320af81e8ff",
+ .iv = "a1",
+ .ct = "3485efb167e5163f84f534f0e2b5fc5bccdf8a5015182b804c8f197b9e5dce2a",
+ .aad = "a2a28820734d886d98583b38254a7dae3c596cff1a48b127d86d2bd804b0358ab63805a1a44dc0c5a76856549833808e",
+ .tag = "6be63328e90bf9f4343d0cbd54fff232",
+ .fail = true,
+ ],
+ [
+ .count = 4,
+ .key = "c451cfe9fb1ce49b2325dc1ab3eab99d",
+ .iv = "46",
+ .ct = "15b88e4162d4594ad6a38349f1ec9520e417b2bbb755ca1c054c40a8c1491b06",
+ .aad = "09b2e4f4ef08f7b677d95d2afaab26496dba87bf472f5de736a2951fbb62b7b71da21be9cb515e1f8f1b63c2b824e691",
+ .tag = "8095e5f36aad9565b9e154e15a99ca1b",
+ .fail = true,
+ ],
+ [
+ .count = 5,
+ .key = "7e5d1d2f89bf322eebf3d75b4301bcfc",
+ .iv = "6a",
+ .ct = "620cec3e82c871350d42b03d0c9bf500e92acde0203d915a461296434bbb9439",
+ .aad = "f358b586ca2a97cad01b06ac4eb48277700ea39e16132e8e9cc9d6b8c5dd9d25a7806a843d5607bd89b67eeeb2045976",
+ .tag = "9c4ef09276504ad89c17c3767feb099d",
+ .fail = true,
+ ],
+ [
+ .count = 6,
+ .key = "07d7c09b5ff7f1cc73d7444a0aa8305c",
+ .iv = "e9",
+ .ct = "bdecebb1acf769b0d531f9acd830b3b17f1991ccbc2d736bff848868df1a3c1f",
+ .aad = "b8ed2a1a53c9cfe20716e49e27155b0fb7f2198c58a74a0621863299cd566d10ff4aee926f470b6d711726d46c8eea67",
+ .tag = "3ad446d2cae10c660909ad5c67139009",
+ .fail = true,
+ ],
+ [
+ .count = 7,
+ .key = "a8c2b3db3d7d6206e2554433de7280a8",
+ .iv = "87",
+ .ct = "9bc2450df5d9b4c347371e0f83a63d4b05ec97b50f66f3ebde9890d102fe1400",
+ .aad = "e8724702bd529ff9c68189dea9c90b4eeb1eee0c39cfab076bdf7d21712747fa650812b73efb38e38df819b6d94195f8",
+ .tag = "a8ca0cbdce016e2722843108e1bbf90b",
+ .fail = true,
+ ],
+ [
+ .count = 8,
+ .key = "3ff05c04e5f56296233e6f2dc1676cb4",
+ .iv = "67",
+ .ct = "df2554b96e7ca9901e5250a4ae9fc7a198937092f4e51c936fa7c8be1bc91580",
+ .aad = "e97d2336e062824f56b3a7f9e858d74bdde84ebd7f04eed19aa960d91583fe9c52a14816ab671cabf7243cb8ef5e96eb",
+ .tag = "c351fa92b4a5da111cce2605c0cd08b5",
+ .pt = "9f81bf9d4382cd03c8bcd99a6b263b6f57269d6fb33645bb095b6e3ec41c9828",
+ ],
+ [
+ .count = 9,
+ .key = "85446fdddfdc78e68c6c434d481c8c6b",
+ .iv = "a1",
+ .ct = "57c7589e4199f9e2db19a918d16691fb731cf855c3e41a7d79ee7463e8dc8c6f",
+ .aad = "35d5c07467007c98eb98905d91f8ce5ec06b21b051c63cf07fa412bc3c4372d47f693f7d083ac5b1e2ffb6e455519b44",
+ .tag = "c479d2eade6c185853f48da3fe0a81f5",
+ .pt = "168ecd449171fec45ea02b6420d0c0a3c2b312624664b26901486389758901c0",
+ ],
+ [
+ .count = 10,
+ .key = "a6a4a69cb97850b4f079d6174a704847",
+ .iv = "23",
+ .ct = "60b55deadd3c9c07a16ebf64642359bb61491c4e8c20e8dcb62d1fcd9a0bf680",
+ .aad = "dfc92e802d268dbd41d3ce25716546f33c8c028190e1eafc48989eaa2fe2c10e81be43db514ee8bdb5e7e94e9eefd529",
+ .tag = "d5b89341fd85008b0700ba4d3d0fe0fa",
+ .pt = "90ccddea7008fb605e4aeee92bf3f84c869ed837631c777c80a8960e78101dbd",
+ ],
+ [
+ .count = 11,
+ .key = "ea9bbc2ac055b0df990a73dd78233a0f",
+ .iv = "cf",
+ .ct = "969104d86307e4fcfa39d16253ccd488396880570ef7409c9f2be951df5fa9ae",
+ .aad = "79a4ecdf19cf56cf433963785acf215b578abe230b56821da801edfd26077a45795dbd91673d1ce04fd554d251bd0d2a",
+ .tag = "38fa0be2b97950c6cb7f8f988ed000b9",
+ .pt = "74a9ccb489e68c522a63533f549d5805d19f6288e3b2301ebfe9cb681053a2cc",
+ ],
+ [
+ .count = 12,
+ .key = "27acec4c38a05e3b009b3bf940fd44f7",
+ .iv = "20",
+ .ct = "66bc7329c8170935823ad79fa6ce6f567043bf7682e9b82a78f369476e372a2d",
+ .aad = "b9cde0276e7273dfa54b8ed9a676b38c50954c3be57be7b212520d319f74e65fe708d242b13df095ee42e31e1127c615",
+ .tag = "5126ce1367cde3ab50b0f5dc0b65c734",
+ .fail = true,
+ ],
+ [
+ .count = 13,
+ .key = "e54b83f07e04e32576a913b09574f944",
+ .iv = "4d",
+ .ct = "8cb3155d2a519638bd1197c7bf200f65e0e738b84e8cfd442967e67a047a6d90",
+ .aad = "356c55a39f56af226a9b2bb06dbd618c153066b78baa37b18cf057cadbc7224d4ad83beaa2c55c4665043fb0edd147e1",
+ .tag = "d8aea4c1a25bd6f7b1945fcd848e8bf1",
+ .fail = true,
+ ],
+ [
+ .count = 14,
+ .key = "f720d60923675c4fe221d53e964a0a38",
+ .iv = "a2",
+ .ct = "39dab03adee6af7a5d7abd6e22d33514e3ccc0c63d44299c05f9b1f026922488",
+ .aad = "14cf7a24d77c669860e4a0fceaa4e264e851731ddf948424328ac9cf5b1abf4ea80cf0e463435053575383254627b444",
+ .tag = "b873e6126b1baa8afc85e6eb5101ac45",
+ .pt = "a7ce815f0f86de579a52cb9745b9776e6414de91e928c421328aa1a1c5d2fd94",
+ ],
+ ][:]
+ ],
+ [
+ .name="aesgcm-dec-iv8-pt256-aad720-tag128-key128",
+ .keylen=128,
+ .ivlen=8,
+ .ptlen=256,
+ .aadlen=720,
+ .taglen=128,
+ .cases=[
+ [
+ .count = 0,
+ .key = "200062755f9375072c72d3f4f36548e5",
+ .iv = "94",
+ .ct = "3ca7d9b392ea99073151e87527eaf439be824db5c1c9cc9c8394e7fd5d93648c",
+ .aad = "bba497a9a4b74fcc9bc84b8effc5f5ff452f7777c21c2dece9fce2c5da1730821bdeeadee066ab4d474bcfb66a4c1f14c99a574a1023544ef1f85667f14487d2b2af82baefa81c9f3647c44e0279f7878b1ce68edba3d7bcd5c9",
+ .tag = "2620a07160e8eb486d63e389d371235e",
+ .pt = "596b0b9f877201ba6d37cc001e4105e357a5cb9c41dc9adf2686c4c2cbcfa1c4",
+ ],
+ [
+ .count = 1,
+ .key = "ea00ab0c01c9f8930fd1dd09fe639d15",
+ .iv = "54",
+ .ct = "5f637603bf4f5d612d21cc3a79fea4faaef5b392f5669a6bea923df7c03fbe14",
+ .aad = "21e988c607bbc9ae3b797f1fcdc1c4476854bf4eb36ba2f4fd411148e0318fcb570ef66d780288fed1b19a88790c4cf07d21e33c129be5861d9e4eb668143df3410cb3a9197604ca82890abb00bb4d91a39bac9a62bd0d0d98cd",
+ .tag = "fab0836fb5402c9cb2651ee8acd3c265",
+ .pt = "8662a9ea34cfb3372b73aa0bf072b2eb03dcc5de82f71713499fb3dc3f867eca",
+ ],
+ [
+ .count = 2,
+ .key = "878d21fe2f6da8286371c6f5746e571d",
+ .iv = "58",
+ .ct = "03e5323279ab5f3552e0988bd0f212bc69bda80375afd991ba4ca6122cec93f5",
+ .aad = "220f5e078c057230e2f0a83ef90b5014ec77c843a751a88864551f4a9711df7cb53bb0b89c6f5015d9c3fe99b2175af3a78cfada79c29e7954a0862d35d8d96c55e8980249d39748a5c94a12e52c183ce695b0e6f15c20c0ed38",
+ .tag = "512fc2ff2e79485268d46e84a5d9acc1",
+ .pt = "b45956e841c6d88056d484e22f58b516d8dba37947cde16951b10fd53707af61",
+ ],
+ [
+ .count = 3,
+ .key = "b808a08b2c7440b8d435dcfb3950bf70",
+ .iv = "c5",
+ .ct = "206d7bab70051a0e05c2b9b7bbf1655d8e85f6760e6c3f1589434a1c454a3a5b",
+ .aad = "60ceaf37b02fb08da9b88342ef5c08c732265e234f2109dcefab0fd625398566fdd27afc68ac7127dd5182c2267d73972ec879f131c66355306b1e9d0aab5ac3038b6ac566c465e188b605e97098c57548d8c2f324222a551f1a",
+ .tag = "4dfb6d931fef13d9bb13942164127ad0",
+ .fail = true,
+ ],
+ [
+ .count = 4,
+ .key = "24c9e49938001f84e014c50b48b5efca",
+ .iv = "73",
+ .ct = "7113f219bcf0722db9b3c990ba91ceb5e591bf21360855c5ee69d4d6f61ab7b8",
+ .aad = "a31b9efa75dff35e99c5cf4cccdbe7824a35a9a30b27beba785e5ad5863abb6a9d432dd4976da78a502c8a076639828f30369590dfbf6d5a257a2992ca9aef300ddbf22b6ba9aba3d2bc65886ddb906cafa3400752b169179842",
+ .tag = "127cee1c0e7eb71736105e2c553e99ae",
+ .fail = true,
+ ],
+ [
+ .count = 5,
+ .key = "077342e2f431d497d64249776e01ca8d",
+ .iv = "53",
+ .ct = "956d1aab87bb7565f1b39ae4e19dcd8df5128bb3bfea86c521e8b07c3b772f6d",
+ .aad = "6e72fbf818ba651a5003f204b9e44d402f29089f465a08be195d798f7798160d174a67ee67a71926126534d25da028507efd8d8d9a9cf29e739fee10c96f3794aeee9f4eba51fb39b15beb3083c9a9cbb50b5e8b79c61d58ee90",
+ .tag = "de28220648f910158513567a1706c9b1",
+ .fail = true,
+ ],
+ [
+ .count = 6,
+ .key = "862405fbc4dbc2b4911658399ab65b96",
+ .iv = "35",
+ .ct = "d53e2183e537e054f7a701ef7410877e79182ea8d4e22bf3a32130b2da54e465",
+ .aad = "e07bd8344f8e1b4ec21ed18da5627a4a707aeb6b7bacec043aa0f10d87e536c933c6253863e32eefbd1134fc78797e5052427061ed68ee1688f6001e885505cff4b0e532f368fda7cc1c8ca5563985b5d61340bd862f7f1df931",
+ .tag = "1e84fadfb369452c858c983112fd0cd0",
+ .pt = "c80e3f1ee0433450d45bd3d75b72faf540ce17cec79a583202fb0c6effd694e9",
+ ],
+ [
+ .count = 7,
+ .key = "6c0d5ab551bbee6ccc7e15b436455a45",
+ .iv = "c9",
+ .ct = "d9a7df834b566cdd98e5ac46b319d303bb5a13ef0eff920c22d5cafc0a360e9a",
+ .aad = "5c6d89b319e02e1d5100678e5b9694ee2e5cc9405df7103bb9a722415db6caeef08541e4cfa52bfaab3dfd21517515d2be1f3c80cee31cfe6ba13d9a2c0844a47855f11c77ef03646bde4902e1cc07a22908de1ae47097cc5571",
+ .tag = "eab68c119088227d9bd077a52b6691e7",
+ .fail = true,
+ ],
+ [
+ .count = 8,
+ .key = "9f5f7e80035421ff5b3c06fa2195d623",
+ .iv = "d3",
+ .ct = "6f8a3d1a06704ea97c46c62564aeec5846cfe7fbef4a7afb10f8926ad66bb8a1",
+ .aad = "5311853852d9f063632e57a89760e35e33aedcc831fd739891c76776fe15fa984e050d7790a1e330e063050ea8bbd631ddb0a990e7c78c615511db5f26fdb7846bb7844ac22a98dee4fe136be7679c99c4af2b0f24ff57d638da",
+ .tag = "5e2b51d30558f4f0a68e6f5e8538b8fe",
+ .pt = "157a5fe2259ba650f0ff8a5d8ce0ca33580f2385cf61b0a4c702cb90cc6b1db9",
+ ],
+ [
+ .count = 9,
+ .key = "00f20ad008fd422d95ca06527bd0af8d",
+ .iv = "e4",
+ .ct = "428e8e32ebdd96809c69f6dab5eaaf94617538620fc1d7b5290f198de8812ef1",
+ .aad = "26d0b017740a061494f2b124ce0ba7475ae2d39d1e1104ceae831cd368e8e08d2ed6f16c63529d7ba469cafa1531f0a6b3452394f26af4e39a714a93b0a8ce8c4892f94f48afdb2e2ab4515cb65cc4e64d5d1012e5cb24c7ab70",
+ .tag = "b03801104a48aa2b4be67f36aa718368",
+ .pt = "3fa666e9d85144dae97af9b471683de9dd766e0fd7fdbf4bd378dc70f572cfa8",
+ ],
+ [
+ .count = 10,
+ .key = "06f6772c757a5cdfc8e37577bf8f514b",
+ .iv = "71",
+ .ct = "70c25478bf8f8fbd09c9f83931084577898aa6d84a9ad87bcf00df578d4290fc",
+ .aad = "1bf1dce053561a8255a21dac3790e0c90b2f6971b77cc73a3745f91cf53db57763efe82771795e71fe763189ba5acf0c8a68dacbdf168e1ad3e062eb6a6b9b5325fd66783185a82c959a990ca1c431aa2ad228188575057e38d6",
+ .tag = "7d4df0079ac69da94d7c3dbd99ab4747",
+ .pt = "19cf4c0641ebac6218397e6bfe9060407f15abc0859e069adae53686d39373a6",
+ ],
+ [
+ .count = 11,
+ .key = "e54afa013ede6a14e534618cdb966f2e",
+ .iv = "65",
+ .ct = "702dc1598eab00c5ed47a693aa1648b952df29a118aec2d0ec93e5a3c7baaf15",
+ .aad = "bba897d4ba5026357c9d76f0c3a3c108dc1cfc66c407509f4a252ca37a90c6e64fd9fa598c1a487706b73392470891d0a8f5aa56e8e9e49773db9d9d34fc5d24274afc7bb9bfc7714c331eaae8c3997215748f2ade9ef852f1a5",
+ .tag = "e6a5837f1a47334eda6b93fbe21124a5",
+ .pt = "3c80bb9d2e1cfb777d90267b3795a05648b83585213fe669381d6d1216c04c2e",
+ ],
+ [
+ .count = 12,
+ .key = "b8a651835a976807d3a4f4b2767a054d",
+ .iv = "e3",
+ .ct = "61de3226fca96ad5f2ed5a4067b6437d23a52d9c31a6f158661d249269d3e607",
+ .aad = "fe6ebae7b8b9b2d26569e8dbaa11438b6697b803bfb201812151e52ab7f1703d878ae295ff6c61642033e951b5f69ef8bdeba4218c57502c76e540922537339ee21ad6ce1b1656daab62d0b6a25a3a5f9734b751b9040b5e71fb",
+ .tag = "cb0f9d8f98b8a2802d3478b3c2b4ed7f",
+ .fail = true,
+ ],
+ [
+ .count = 13,
+ .key = "eb675546f470ecff4d29ce62c20597b5",
+ .iv = "ee",
+ .ct = "0b3d0532b0a7ff37fa32f669934cdb669eafda444c7ef5a829f1956d444264ba",
+ .aad = "cc384deda98890fbfb7531caeb962aa8a4420e86bfee3db2b13297f79df76cfb3f778c20b7b5b403a801a0da90dd00a936fc93bafaae230fad0644fdb7fb1d39bfa5e60f09b2d461af008a36e0102a5f0195059fcc47c91d5b5d",
+ .tag = "7763119d99dda135838354ffc66d1bec",
+ .pt = "eee61c759e5003f1d3a337b791d2bc41d881747d229d54ca92ea81dbad80cea0",
+ ],
+ [
+ .count = 14,
+ .key = "0da53e7d1520dd976969fd668f71be0d",
+ .iv = "a9",
+ .ct = "f7d5df66dbd6b9c846c8a3bd439b9fb67f21154c919ce37637b472c0fd41339c",
+ .aad = "941433fcbb28a844fdac6de575ce5293e66675f51f33a3d625605bb6f3a21686ae9dbc353ac0a4690297b6afd8bc409275ac4605f2a3328f9808899280c1e61666826ea550dc1a487f5160cfcdcd4893995d50e3107d3305ca29",
+ .tag = "b41f1697e94a0d5c6951ab59bd7688c7",
+ .pt = "922d01ba33e6b8e3e623af21745bdee0bd877f83d51d2a004bfec85259e1251a",
+ ],
+ ][:]
+ ],
+ [
+ .name="aesgcm-dec-iv8-pt408-aad0-tag128-key128",
+ .keylen=128,
+ .ivlen=8,
+ .ptlen=408,
+ .aadlen=0,
+ .taglen=128,
+ .cases=[
+ [
+ .count = 0,
+ .key = "8df696270855825137773d0579d87504",
+ .iv = "4e",
+ .ct = "0f9f3fb551e04f377a26d808babfacf256cbdf01f728ae3d0bbd3d0538b4e9a91c1ab298e80ea9f4204e4ef5e1f8125fa870a1",
+ .aad = "",
+ .tag = "bf3319fe231c19ab1bd2382fe4c16167",
+ .pt = "161e02d332fc7137795e5708b15b0dbb676f1a706648884d2085f55ff9bcfd69a7ac47fb1379baf1cda6188360004fcb79ffd1",
+ ],
+ [
+ .count = 1,
+ .key = "9a05af64fe0641bbce565e7aa6d3a73b",
+ .iv = "ee",
+ .ct = "27914d3a9db4f4da9da69adb3f93af1ef3810c71eceae6089945eb526ac5cc01c41323b8015d13521731eeaf6edf15ce9bca61",
+ .aad = "",
+ .tag = "9b09d605d4333d6b2c84bef9759f81ef",
+ .pt = "367d9d411008d47829ffd0a088ab8f3e08431a2715903975221f5a310b609af5464ff9e98e7bd309a7c11b92b7a83cf6d425fb",
+ ],
+ [
+ .count = 2,
+ .key = "e92c055beaae752be9af7ecac4e07538",
+ .iv = "50",
+ .ct = "e509dfb889a0f330c52cc618be373c62a9d6a83c77ac794a3ab44c87c8c74417ff124b2c227f14f5f88d62b66d60cdfd37dab2",
+ .aad = "",
+ .tag = "633b2974d2d8e71ab4655e2bbce75e9a",
+ .fail = true,
+ ],
+ [
+ .count = 3,
+ .key = "a9f02ba73901bf420d9a9af074a8325e",
+ .iv = "45",
+ .ct = "de04881657ea50dd907a0ebccc944395984ca190a531c2e1b8b09af2df3939aebdd1dfdc7a05f9ca5641464946d050dc5d3ffb",
+ .aad = "",
+ .tag = "a59812565e3d00721b5c61f65b957374",
+ .fail = true,
+ ],
+ [
+ .count = 4,
+ .key = "6b0f1f6b476454ce3b8c58df01531c08",
+ .iv = "79",
+ .ct = "da328f3bbd62ddb417bdcf1e091d2f7ab64f50abd134a6264b561573fd23dbbd431b46fd7d752160549cbf1276df4f486c5aa5",
+ .aad = "",
+ .tag = "6a09a1b9eb211ddd2195903e16ea0e2c",
+ .fail = true,
+ ],
+ [
+ .count = 5,
+ .key = "fc4ff7e1b58389aec2493b0f4caadf69",
+ .iv = "75",
+ .ct = "804efae9ceb5464e42fa428a5e91588090a5c8425a611e8f0caabfbe527834cba056284beb57a037ed0cdda9ea81779ec85296",
+ .aad = "",
+ .tag = "75be08ce1dc45a749a3e54fe9e4686d5",
+ .pt = "c4ba4069d5614bb407b6231d1a573d623a66a280e5ec152ccade0c6784ca08a2aa7ef17c226d6616db8d9726d08d2a6ef04c97",
+ ],
+ [
+ .count = 6,
+ .key = "a15dddb45694e785093679acda2fb775",
+ .iv = "8c",
+ .ct = "86d418cc4b8cc8d35a3a8024780717d2203d6a7310e759581793e4b733f5c40b1beeb584081db197c0229c74301dbf47776fe8",
+ .aad = "",
+ .tag = "ad13d235de6f4ed0430927750d2773bf",
+ .pt = "0744a635dd95b78647b6c7f1118b96f42dff57ac4a9aa5566466fcccf809936db108f387f9b9a233247704dc7d57a2e698f85f",
+ ],
+ [
+ .count = 7,
+ .key = "e76b9b2ee7f7be4e6a6831ac2f3a0f7b",
+ .iv = "27",
+ .ct = "299b3472b8b8dfdcca95171b7483f18cae9a948c84ebdce66e9422b220fdfe33a6e5834327df653e648e383b237c12f38ba02b",
+ .aad = "",
+ .tag = "a8f7b3ebdc7cccc106f4dcb2f727125a",
+ .pt = "a07ea39ab6d53e46c360b684cba7f2a46632fd1d6443e7431ea5ea05daf6c45b78e1e7e50f1d2e3e48d0e53f8827831687b60e",
+ ],
+ [
+ .count = 8,
+ .key = "61e7abe3208124de22d3b05c5e2ec5fa",
+ .iv = "ef",
+ .ct = "8ccace7c71d7c8698636f5f8d11ea146440635d0f45ee517119b0078fb3a4f728edf9413dcb2cc0c8f0da6250977acb495bcb1",
+ .aad = "",
+ .tag = "c11d61c10b2eb2188ba3c71c3fab9a2f",
+ .pt = "e59eb3a8fda82f08025638b52c4b84d005611dd59ab4d3a7d0c8f85c42ba50c5d6905cfacdfb6d40304dbba77726dfef57f6a4",
+ ],
+ [
+ .count = 9,
+ .key = "f0ca69fcf0ed47dbe37aa765b2ee4d86",
+ .iv = "f0",
+ .ct = "cc35cbba60127d679cc46cf2bf9876af672bef60ce3759d26dbb3b93f0685c1dcfe1db8c631a6a1cd858c5912a6ba5f3244ae6",
+ .aad = "",
+ .tag = "354a60c60fc422924c332c99111f3c1b",
+ .fail = true,
+ ],
+ [
+ .count = 10,
+ .key = "5de089f65658785aab2be71b8d924b4f",
+ .iv = "47",
+ .ct = "1ce700f529382a08891f3b34bfe0c4a1290fd1f840a5cfd76461d43c34a7d98682cd6a4d39a64cbe73bdb816f792fe30a80b08",
+ .aad = "",
+ .tag = "38ac9fa8be48113ba8a40c4a34c00b22",
+ .fail = true,
+ ],
+ [
+ .count = 11,
+ .key = "3dca84832b7f99a816ccf6120a558a37",
+ .iv = "fe",
+ .ct = "295301a021c55c8febb5087cf10e8ae16c0d90651d441920e8b662fe923b346604558bd6d372d7a9df2a7780e24886a54ddcca",
+ .aad = "",
+ .tag = "ead62447af4a64fe0f923aafd6bf0a43",
+ .pt = "0bb689247e2dde7bba5aa75be4cc9a9361e588f142c6846a27f0f22eb716b358427ea0b542958fd4c3fc618d576fd10312f831",
+ ],
+ [
+ .count = 12,
+ .key = "71585661a793a7c7bc2fdd98e1fcef0f",
+ .iv = "0f",
+ .ct = "c1da7e6cccd228e652debdbc440c707b7337af404fff96e49be77d1e8157326fa2944576accd0d74d06a3df57eef3bf0bd64d8",
+ .aad = "",
+ .tag = "8ca441099b4605bd6d7787c8c1b8ebd3",
+ .pt = "26e3c6f1214807f3dfc06f71101077c5a3d510bf2fccec0ade1a8851f16b73a25776aec3b95fcf9afb48254655ef5f6e81f4a4",
+ ],
+ [
+ .count = 13,
+ .key = "2e649fa195ab3b059104a207d7f7d8fa",
+ .iv = "26",
+ .ct = "c361abc65ef06f532af24c1da31e56406b3a2b89a839a407b0eb8c3e4592159029ba47df353ca8edf577a7145f8413e016abdc",
+ .aad = "",
+ .tag = "4e677838afbc3559682b0bfc8f76d19b",
+ .pt = "99f715b3b9546a52883fdf10edea8a625e65a6b45b95e00f564e3eadc5dc78094afcb23614474dc3ad21e745c8d74ff0173280",
+ ],
+ [
+ .count = 14,
+ .key = "4f4b5922061d8b16582e3d18f51cbb59",
+ .iv = "4b",
+ .ct = "85ebb184ae4b9b753dc48f0d43d88ca2e0bdf2dab253c9d17df93ae0f829470ac4d3a1f32e536c4db42a2e2d6833dfe9e59e2b",
+ .aad = "",
+ .tag = "999c8774aaf9e59e5e82deee55ed7117",
+ .pt = "f16d992ee2907493b8f5424918d66be4652f6b1dc303a5de11a6098d6e5680c89e94ad202aa10c3958048db7f583823e45a407",
+ ],
+ ][:]
+ ],
+ [
+ .name="aesgcm-dec-iv8-pt408-aad128-tag128-key128",
+ .keylen=128,
+ .ivlen=8,
+ .ptlen=408,
+ .aadlen=128,
+ .taglen=128,
+ .cases=[
+ [
+ .count = 0,
+ .key = "ac3c53b61ee8161af467b76909f0bf0f",
+ .iv = "ff",
+ .ct = "84cf6273becf56650cfcaf18bbe6755a3c8c6e8f1f267339c47ad4e39d826d590f8020846c7e8647611f923ee7f1af843301ed",
+ .aad = "539fbab996e5bcc3094cb5bcca02ab61",
+ .tag = "39b12eb10ef2c61316a8991093045283",
+ .pt = "51bb13df66a464ca78bb6e9f2d69f030474a8d5b0a601c2786852edb7922bbbd60760d2f2e5604df2058a8f34fac9398d2c438",
+ ],
+ [
+ .count = 1,
+ .key = "0508aee358a73a385f134340de024813",
+ .iv = "d2",
+ .ct = "2b044f9dfa709dc150f3b344f895dacb38424d9d19522b6dc4b42c0a69b403b4e1aaf8270eb65e9064a96bd5f205630b47d680",
+ .aad = "3007eed7db444b29b9eaddb556b5bea1",
+ .tag = "adb6552fa4412d697f557da178229219",
+ .fail = true,
+ ],
+ [
+ .count = 2,
+ .key = "a715de0c51c85821071e4cc217057981",
+ .iv = "61",
+ .ct = "b44cbf5c71fdf35ff419b12db6929548b2fbb90a18b1495cd14093dbbfe38c4b5664afd4d315a28d27e98172348e9bc0c1f826",
+ .aad = "f74bd4482873f3da6c0439b6d7cb9117",
+ .tag = "0624b489e0af51db7bd56690aa63ceb3",
+ .fail = true,
+ ],
+ [
+ .count = 3,
+ .key = "cc55ececa38106e9eee79246cfef1bab",
+ .iv = "f5",
+ .ct = "4d7ef0c508afe36b221ff74d3012da538b45658dcff8a3275527017e80b3235271cbe77bd2352729259da6c694add37d846bb3",
+ .aad = "f68032d06b0d2c6e091318cb2b562f4f",
+ .tag = "3623c6d8493772c1f92f8445d07f05f5",
+ .pt = "3f5a7330e9d1f4936d2323b15ecfb231ff281dcbef53df1e74171c8d62a5572ab4efea867f2620a68e71ed15d4416455144ca7",
+ ],
+ [
+ .count = 4,
+ .key = "1b4a00664c71001911f51f75c331f3f7",
+ .iv = "49",
+ .ct = "772eaa7324efee41627f404315815ac0d74010e98fb269d3c4e11c8cea9f4e94da491b7d57e6cc39f1b4d28cb99a8d32c36094",
+ .aad = "3b6969fc1f8b7b2e19a85b84af0e339f",
+ .tag = "5851620cebf73b64772228a9f567230d",
+ .fail = true,
+ ],
+ [
+ .count = 5,
+ .key = "2547625b06673e2b93f831da49096c45",
+ .iv = "90",
+ .ct = "02f1f41aadf83cb488ed1a00a5a3908d49ab7d5ed699bc7c9db9c8ee828599ee1c768b11dc5c2dc5af6d3c4def5606407b223d",
+ .aad = "4ccb52527ed3c9c3890e983dbe08c0d8",
+ .tag = "6d412542d26dd9a993ca4c8c9fe6d96a",
+ .pt = "bcb562e5697ba7939bd001955dc3c1370bbd3aefdea75f56b3ae449a6e48dd33866e1f2c13954914e0d28442577eeac84cb01e",
+ ],
+ [
+ .count = 6,
+ .key = "7e49c85959f9b6dd9a0934727d3f30ba",
+ .iv = "fe",
+ .ct = "54f12924143b2960114033932b3d37c8d1edcf5b2807ede30b0edf83cdb94ec10bb270894615d2d81d22b8f64ec5711436ca47",
+ .aad = "e8e0490c3882fd950815237cc366d46e",
+ .tag = "9d68ae18ed7302a794096c736b8a739d",
+ .pt = "72fba89a9fd7853d7aa765fc5dc30b788e0c478dc4a0bef91933c80dba56d599cfb53ae2159c277b55710add05771d29f9a35d",
+ ],
+ [
+ .count = 7,
+ .key = "6dc28865617f672d18918b06dcbf8399",
+ .iv = "fa",
+ .ct = "6002a3290bf87bdc9f0a42e8ed57a7b30a4a0a012a7c10187641a3b50e008b4aa93935341347806903f262a79ebadc097f2855",
+ .aad = "f0ff2368c02830c2dd9d71d678d3cab5",
+ .tag = "4b85f55ca1c0f4df96c4bf51cf164775",
+ .pt = "96d97e35e93bc3997d3ce35a60cd8979bea251c810fba78ac30db5876ffb44b69560a9fefc62033f0c1ac3d3c5bfdc1137cedc",
+ ],
+ [
+ .count = 8,
+ .key = "97d2f778ffa951efb0f0fb102d968616",
+ .iv = "fe",
+ .ct = "e78d1b9942fa78fb989a73fe7e07870b1e78275ba03c8d19c4b91e963a9bc2b9192101310cbd8dcdb71015515ae06115cdeca8",
+ .aad = "9374b972d212c6da0a239952efbe52de",
+ .tag = "40e5ca70fb20322df33e6dd199e21334",
+ .fail = true,
+ ],
+ [
+ .count = 9,
+ .key = "3867a963803cb6a6131e2e0222088e5e",
+ .iv = "2d",
+ .ct = "ec851cda844f4b3a02638e2f48dadff5c46318453628f4af6577f62d02100ef9601b5e33b29f9e76c19753193d0570894af006",
+ .aad = "92cfdaad8bca5f156d90ffb79a183cdf",
+ .tag = "d7febd7f55029aeb98be8064242c4114",
+ .pt = "1f4b122fbbdebdb2808066c959fe339385541a3f2f2fdd88508f3054363766c719cd33d41e775958a67b40f2a6b6ed9898e66e",
+ ],
+ [
+ .count = 10,
+ .key = "ac874cbd9868aaf93949a399f48bafd2",
+ .iv = "ab",
+ .ct = "b13bfc4e2ef2c17a29eacd3e0585d8bb474dac76ad17d2fd09433ae423506f0665aa87dfd02ba8404c0248f33e4ef2f4b5fe9f",
+ .aad = "4cef467ac13d8c367a2b0d024848f4d2",
+ .tag = "71cc985d83eab1e766721df8cef96ae6",
+ .fail = true,
+ ],
+ [
+ .count = 11,
+ .key = "2a050ffc25839d8970119a94bf9591b4",
+ .iv = "b7",
+ .ct = "e8d4d6580cfcf7b71492c01cbcfb979493d996c7ead42b9b6a505fb0e5f931fbac6cd29d8867438cc3dbcb8111226b0716ccf6",
+ .aad = "54a90891640b75561d62f5146cdd5798",
+ .tag = "94b6d558f7c624779b4321014f1c0f7d",
+ .fail = true,
+ ],
+ [
+ .count = 12,
+ .key = "78c1fbbc8c9485e670951d02fbcce4d9",
+ .iv = "6f",
+ .ct = "580c09fdb4abcc6893bf47a9ec6e4c50591fb58073758c8208a1a8b8e7fbc41f4c85a8622f21bdaa10c2fadca441e1c2255171",
+ .aad = "ada4755080abcf2822b0f3ae0bb92578",
+ .tag = "8e238a1fb3f6f7b16315039efffeeaa8",
+ .fail = true,
+ ],
+ [
+ .count = 13,
+ .key = "27899dc27d328b796115a3a81152c5db",
+ .iv = "c4",
+ .ct = "e8303e320554aabc48b3f2313a990ccac4d7eacf7b33f9ca2a2ee388a1da594d6cb31e67bf84d8b09994ad6735bfe91887bbb1",
+ .aad = "552d15cd2e66d3ac0928b43e245f239d",
+ .tag = "c76e801b36f5b100b429f8aaf7713a48",
+ .pt = "afa650994bc7dabac9e66c4c5c8fdadca76f04ba41270663ebb6b57b61f6bbfdfa1833ce9aeeb7feee09034339c5a7a50b2d56",
+ ],
+ [
+ .count = 14,
+ .key = "785a4a89a8b5ef4f4ec6f466e05d8601",
+ .iv = "13",
+ .ct = "3b2e9a93c740ea4d0c7f87a58a0fbffc22b00a2be451cf7883f315737440024d1511007de1f100e0f7a8237ed12156cafbe4a9",
+ .aad = "1da020d689dec49044c44a5d69924240",
+ .tag = "05c44f6bf30a0a0b84464ed59a647103",
+ .fail = true,
+ ],
+ ][:]
+ ],
+ [
+ .name="aesgcm-dec-iv8-pt408-aad160-tag128-key128",
+ .keylen=128,
+ .ivlen=8,
+ .ptlen=408,
+ .aadlen=160,
+ .taglen=128,
+ .cases=[
+ [
+ .count = 0,
+ .key = "b13f7e2d59a9ef4c77f5582efe936dc1",
+ .iv = "8e",
+ .ct = "8ba6bf238db4f90f9437691d78eb713410b0413908560fc8960c8b0f4d32423f8ba4d349e0f24566892a19df8f1ff6823584a9",
+ .aad = "b1c8f38fb4f7546c213dc3d3502a8d7682ecd1a8",
+ .tag = "5f9257e938c9fb2137c1a15ada4822da",
+ .fail = true,
+ ],
+ [
+ .count = 1,
+ .key = "d1c691eb3f0a5f302002d19bca6c5752",
+ .iv = "2a",
+ .ct = "d2097c5443d0d31a1a8b1f71c2eaa590aaf6a20f9b8f7a09b270e0a2169804d30a936c3c2f25d3bef801e5357f00321547a405",
+ .aad = "aabf99e8b334609c72f6c58f4a51cae13d48be45",
+ .tag = "99d7b28a928596769fe792d949a6e45f",
+ .fail = true,
+ ],
+ [
+ .count = 2,
+ .key = "1f7aad15547171eb2cf5ae6e66bbab36",
+ .iv = "b9",
+ .ct = "4b336e5edf0aba6df260449556ab7db8fec9bd92e0e58bb606895092361d218ab66ffb2ab73dae102a18b22eaf867a3e74e62e",
+ .aad = "f7c2e705d6a44fc785024056ed917580ed8ed643",
+ .tag = "a68f7f056ff2e5777f57a0cead0e6863",
+ .fail = true,
+ ],
+ [
+ .count = 3,
+ .key = "5c8b155d9a2df276eeeb54c3752fc881",
+ .iv = "11",
+ .ct = "de30bd5132f86ee692e8188836383c63f1940906c333ccf3cbf71b898f25c9db0beccb5fa67c60a82812c6e5db2eace18e10ff",
+ .aad = "c5902c4330714e54d40b25cbce9fd4869bf24290",
+ .tag = "098348034e798c49234a4729cbbf2184",
+ .pt = "ff34d142d9eaeb9e0b0689112012164c3f34e43aec384415127c9999b9d04830dc45d9f8e5d41bd00956eebca7dbc1c6201386",
+ ],
+ [
+ .count = 4,
+ .key = "867fe89df01481cab696a6de482a4d62",
+ .iv = "3a",
+ .ct = "5ab101f312ef7aaea70df820fe118b3ed32a26503c47b512f0756393f48a813df90e8a255b914c0bf2abda1ce9e49cf90d9548",
+ .aad = "e2a143ae772ec9f605184f05ce174f32eb889e72",
+ .tag = "f1dc6ab309ce4aff81d40c6bd0f51251",
+ .pt = "03778d3f63ccfdad3d14ea81b65c5d997e686273b27a597ec8dc8a0b928d1e62b7b4d48434c5d8da9dcf4f499103e0ef39bf0b",
+ ],
+ [
+ .count = 5,
+ .key = "16677b028f506c5719d9eaa451ad2fa8",
+ .iv = "d3",
+ .ct = "3f3e9fa0b5c7140ecd2a4d9aa953871a456f8c274c3de26c0b3ccba97a28044eaac197e566b4031bb9478ea3777e8dcc82307b",
+ .aad = "e56544c6fb14e4f7ad453a5c6523a3c65a3e3bcc",
+ .tag = "cc8931a71bba121f7cdc156daf0347e3",
+ .fail = true,
+ ],
+ [
+ .count = 6,
+ .key = "bb389938dd7ac2311902de438f51d43a",
+ .iv = "eb",
+ .ct = "fbedd47463d160093945282303f299167cb9cac782fc945f55add6ed5cc2ecf6b9dc5b167f8d455a578866244689cfd033bd0a",
+ .aad = "064181a606a895e98f291ac65e9274e25be5d043",
+ .tag = "7603fe348c5ff87d4453f35689b15ea6",
+ .pt = "40850f209ba5d3157aea9de4e036110676e1b48414e229cf410849d27eb52f0fce035ddc55cfd88e927d3ca01b2c51b93a6dbd",
+ ],
+ [
+ .count = 7,
+ .key = "c53519417766174dca8449925d08fd4a",
+ .iv = "e8",
+ .ct = "bb39247c340af083fe0ad15a70d7e6e7a0103338558e6e0111538cd0bca4f5b88871b04339d79825369607ce637b536fc63678",
+ .aad = "67ef38178278c18f721f2a3b52bbd14bf64afe4f",
+ .tag = "c2a47dfc899a05e889e60ae48210a5fa",
+ .pt = "58d6f1f777ee764bcd841fabecd822828c2e3825c4753fc5e94734b337e6b8a4672ba11f60bddc5b8ee23c12284ba34898b826",
+ ],
+ [
+ .count = 8,
+ .key = "16e031b97a09cec6415cea0b0613d4c5",
+ .iv = "81",
+ .ct = "4d6927b6d7ec7d6659002252f694ef54965d859958489e0204639c581572c0e2b3411f77c53a78ae2090b16a9759a772d1b86c",
+ .aad = "55a8ecf7bc4e3bb37d896dbcdc5d7a4610053fc4",
+ .tag = "20101bcd1b8ddea61ec5a7442e06c5ee",
+ .pt = "4c5a9a62439b4540167a60e0e09c662bdbbb5fc1cf46d0d0cd96c656411f14ed5f88aab69107084d765f52ba429c7959edc938",
+ ],
+ [
+ .count = 9,
+ .key = "8024de119384574cfff90dedcedd2e84",
+ .iv = "25",
+ .ct = "9d1d600a45df1cd7bd2b928edb8dbb1593d8235395e53b794657be4e55f72e6de92a79d63dfcd8a07ec36a19cfd5a7cfa7f848",
+ .aad = "5fd94e501fdb9d9ad8f38b78886624e02db19ae2",
+ .tag = "27c64b1546ba6330c1e652659cfb809a",
+ .fail = true,
+ ],
+ [
+ .count = 10,
+ .key = "f02ef0a2f0841620c8f69c0ca38ad2e9",
+ .iv = "0b",
+ .ct = "ba9ab0f07798c120cb4bd21ed8ff2503f76272b61d2e00802c1c00ec635a7d93d5897c4cefc0d2d4cdf92f132a29110d4e03aa",
+ .aad = "38443003b7277dd17ba90b2da654c6fd77ba0210",
+ .tag = "4b920f05693806fe56b5990c7450cebc",
+ .pt = "6871d754b6bc334a3d3d05ab1dbf82df950fde341ba920f8061a4aecc237cca7467a0506c6b4d46474142e5d59c1a202260dff",
+ ],
+ [
+ .count = 11,
+ .key = "cc16aec6bcad3dc4a2377f6f2d79867f",
+ .iv = "42",
+ .ct = "3b42ecb8257c9fec808af42a076306fe091dd9f59d2f4c899a05f63ca534c7a19280444c3bb14cbc2ac6702127a72465c1e612",
+ .aad = "7d05d34564a6847d70af366a5157fbd113e214b6",
+ .tag = "c25a1cb72f2cff01b5c54acc6fade953",
+ .fail = true,
+ ],
+ [
+ .count = 12,
+ .key = "a2c436e527d8e01546e85a21a3641abc",
+ .iv = "08",
+ .ct = "aadad05e9cdd4a1d92498089d4d46fa473e27f8029ff1097382052f2b679c07062fa149119a6e0e8639f3f2f297b3bb8bdda60",
+ .aad = "18b84ed74788ed26cd148fd2dbb983297b2cf70d",
+ .tag = "910e9548649d005cfab25b7d6756aef4",
+ .fail = true,
+ ],
+ [
+ .count = 13,
+ .key = "d156cd171928f5c0df6866c580ed987b",
+ .iv = "0e",
+ .ct = "4ede93575619f9184b6abbca07c1f9f74fb96490c41830d7a5795993ae70b2cad2b0cc6f053080d7eca2d7557b7b73f2859866",
+ .aad = "66a303b5f49e26e438abe5e52d7eef88b2f5bad5",
+ .tag = "ea857e0f443623bac6bd68b03de2ccc0",
+ .pt = "e1ac1702bc6a981fabc068f17573e4387bf0e51ecfbbcb2138d9d3314a75122f3c0e356aa5e9885e3dae24a85c0af4abffe23e",
+ ],
+ [
+ .count = 14,
+ .key = "e245dbeeba3fa72e8ae3ce3097bdce0e",
+ .iv = "3d",
+ .ct = "d4c3aaeb47553f879f2f7719424eb0a625395d613c6086a43d137395c8c700d98702e40948cd751cfca0edf9c1744379521f03",
+ .aad = "19316f168f8ff7befe4b6ccbadfd3bb3796487cc",
+ .tag = "6c2e0692805bc3ba1bc74271c313ded2",
+ .fail = true,
+ ],
+ ][:]
+ ],
+ [
+ .name="aesgcm-dec-iv8-pt408-aad384-tag128-key128",
+ .keylen=128,
+ .ivlen=8,
+ .ptlen=408,
+ .aadlen=384,
+ .taglen=128,
+ .cases=[
+ [
+ .count = 0,
+ .key = "1b3f980a3c884af91393c1723bf8135c",
+ .iv = "c1",
+ .ct = "aeeaf87ceee944a6fdc9a4dbad5023a3a82a49f1df244dcb9910b82f273e57f4b38c5041b567bc898253f5b40e079624f4b18f",
+ .aad = "ef3addc22ae3cffdf771d7503509190403914bdf770a3e1e15eafe7d241e37cfd9f9ff5b115925e78d4ac930129af591",
+ .tag = "efacfff4bed1210493597463f9e91cdf",
+ .pt = "cf62a7e80295110f7fc1a18effb572c9f37f12aa032f45a0b1c174ed65a0fa6d49c8e567e3756d76928316d7939c99fdcf9562",
+ ],
+ [
+ .count = 1,
+ .key = "ccb7de12553b1d9f23ae9e542b0e0455",
+ .iv = "2b",
+ .ct = "0b800d71f866b3d19dbabff9036b70e56cccdd6737c6818627d7364ee7833b41be6296dae6f53b3f0443cf8fff2c6c35335d93",
+ .aad = "5694c889fbb92ea6458cdf6ed44f63f75b0dd1e9441d2a06b26fd5f4eaa87af24c4a700c6531540dd9375020c33a9aae",
+ .tag = "92e30870738d20e8e77a8e4ba594ac33",
+ .pt = "b5a00cbe287f4e0c04fc17e09d4eef62ce3eeaaf3259daa8e3831125745c5d97374fd8c76aa9a769f00df7b876f8e8e12cd961",
+ ],
+ [
+ .count = 2,
+ .key = "f71d2becafde7ebd502817b01e96072a",
+ .iv = "49",
+ .ct = "a0ec52bc078d339ff1dcf51f032313616c2e36211a8d3cd08917480f762ef759455d28554d36ca99d0514b8ae7245a06532bc9",
+ .aad = "d20a5fa9ae15ad466fa5fbbc1be06b427d999f794a520b4e58395d0c7675b45b361672677d4d9d8a7685d3faabb41b5c",
+ .tag = "6a24a1db576c6857c8dc74c2d1ab0610",
+ .fail = true,
+ ],
+ [
+ .count = 3,
+ .key = "c9ad0b68d6c3e36bb09d699a6c8cdf53",
+ .iv = "87",
+ .ct = "b31eb3a8516bf87311e15099dc40036b8d1957c56acbff448d4db7eef0ef86d6a12d07c4e175c80d5e75ba21a061ea143464ca",
+ .aad = "4552ce63e84c316425efe14eecf9e5f76d807242d2a16e2c9c3de2752bcb005fcad26b34829e864e40288cc04dd7adac",
+ .tag = "dd30ec1f0efcc2065ad8cb9d0b91664c",
+ .pt = "62d78ccd646907b2485ae4f97abdffbe571f4b7a157102898f88ec05830ab524f09fe73ffad4414055699aea41c0b61e6904b8",
+ ],
+ [
+ .count = 4,
+ .key = "d0754a34ff61c3515f5baca027e39bd9",
+ .iv = "8a",
+ .ct = "7a157e9bdc471d634096cc26fd4172434b61a592c445058bb16e7281ea6362bc240a4f7031af3e5c6497bf5238ad9ff8b0c669",
+ .aad = "37e128c9f130e45c1032bff4c2d1eaa1b0d2d8601aba9daef69262c395bc2071411a825d5fe5259f1115ee620aaa371e",
+ .tag = "01c73728e2a44e88e7732cd696c84843",
+ .fail = true,
+ ],
+ [
+ .count = 5,
+ .key = "5f20e7ae0d43e1c357c6c226ba2cf3b5",
+ .iv = "ea",
+ .ct = "c31d66a4b48b9db72eefb780410c637ec62975939a3e77b1fda21194544d7aca74718eb3656448a24af34904d42289a3d0a7df",
+ .aad = "4d0214093d90bdd3ad993686f05c6ffd86e5ab37abdea4634d4652a89dc890fb2b3ddbc53ebb797bc3f08bb5c44f8553",
+ .tag = "292b039ea9d987a51219bce8cb133cf2",
+ .fail = true,
+ ],
+ [
+ .count = 6,
+ .key = "29d7d394c689d1a5bce80c7456ed2d1f",
+ .iv = "7c",
+ .ct = "7065462ffe35d28c93aa21677f6c8b3618c3bc64bfcc49a4fee0a9c3b7d2e6ff27f2cd437e9bf6cbf6a353be813f5096d782b9",
+ .aad = "1f643784e060d8ca06afcf7a12c9bc3f970b2074a0ec4c4ef8a3b321f1ec516ee4ff53996a68caf9c17f32317551f485",
+ .tag = "440a0e6831b1f30b99c8ac52790948e2",
+ .fail = true,
+ ],
+ [
+ .count = 7,
+ .key = "6d86b282e092d0d3f67ab119fcb0ebe0",
+ .iv = "d3",
+ .ct = "8d74ce4ba774197546d7e3784f2ead8aa7f5b29e9cced37626e600b4f99c081ceffb2967d33bd11787588b782883fd84b31857",
+ .aad = "039cbc52587365378dc50242e42b0410f84fb5fa1b98cb3a1909803fcb27206a1ca7b4d9c72cbe96c7017b4173718581",
+ .tag = "3fbbf038c0a5c91fdc8ef4ce393b7134",
+ .pt = "be53a9ee38b821f908a4966365fb60dc389acfefa846514b7d18d875074d1bab8d8b35fcc63b079f4503b3ba2e580006e307bc",
+ ],
+ [
+ .count = 8,
+ .key = "672b419c053a31070c844c4c5aaf9c84",
+ .iv = "d8",
+ .ct = "3eb2f177006f43b1beec871af5d9d3a2447eb57f7e0622b92066ab603189f96be392461bc75980bb0b8a0b1fd328d277de141b",
+ .aad = "c610965430cea14f5b4f5e05c2eb3bda2f1e93127cdad179edca5f91bcd19187cefd09547bccd4768922772112769d4b",
+ .tag = "624d5231cabb6c4af0a31031dc11c103",
+ .pt = "0c4f8c9fc479bbd606c8cd768afd2b6d003d230386e44792e240a10c5b23e106be08993265b709c849c7c785c6211c75d5dedf",
+ ],
+ [
+ .count = 9,
+ .key = "6855eb84ff6be6cbc7a4b8c72e91ffdd",
+ .iv = "8d",
+ .ct = "843c0f7642c97c3edbcd67b465c9e9e3cfd929e9a56ae9a648404273425068a7d1cbb08b7f9a03e2f2e809bfbf04d77e43265c",
+ .aad = "f75b00041bebf759bbbc5785c0828de0189aa88a1b17d52186a1f39d0747b5b07b3fcbac3e23471021753a1212334d1e",
+ .tag = "fa526278b6e061e3517c9a78308b9f56",
+ .pt = "935ee1108f795ecab786b4086e79758fc54c8adcadeea2cee87c974b82a14d8b4f4050476617d2ccb96226768a28033d8b33d6",
+ ],
+ [
+ .count = 10,
+ .key = "d4ded8b94812ef0c592bf308dac3ab2d",
+ .iv = "a3",
+ .ct = "076a6d166ebf79bdc6f62f2b89c41118e05f3331b0e70322e9bc2d3d3fcef6b5d148ebffd4cc41a329ed2df600d34320c4731e",
+ .aad = "5eff3a5d4a1ac1096fd14ba916a266c72a187574c674956e0f7652b5f075efbab162c40269b8dafab004875abb92b61e",
+ .tag = "929b503e108d6ada1a937e7f77a45b0a",
+ .pt = "0c170ec0aaed4a694b39a4ee394c485752067c9081a681833d4b3d47ea42f58b15ccc743aec3e356cd9145281a04d3bb5bf3a6",
+ ],
+ [
+ .count = 11,
+ .key = "9d66dab21304fe54b9e1982473a05c5c",
+ .iv = "0f",
+ .ct = "27b4a0e6693ecf0caf7f6ec527ddb6be966e8386e38b1164169d3b6d77a950e56617944bbdb64329dbb4f046b9fa8c9dad25c1",
+ .aad = "761e4572e207e75672baf3ba06921a1eb80837ba41533f5a0acf409a8d84ec2d3318754e59a8e26f7fff2301824511dc",
+ .tag = "7395026b042b1a222e5a272f2563d3bf",
+ .fail = true,
+ ],
+ [
+ .count = 12,
+ .key = "288a798f1d6fe8c2df838dec437147c4",
+ .iv = "47",
+ .ct = "66a9ccca623f4a1a4191b134a047d3823bf1d71fc5ff8a5cedb7b8307382176584a213d306cf31247ffbac676bbb3431defebf",
+ .aad = "e534eec840e5dd5db1de02e61db016f49a1122930d59b81dba9414fde568269a433e9e8bab9e633f73e2cd2b8420250d",
+ .tag = "6af040890dce9f6a5cdc1bff1fb4f64e",
+ .fail = true,
+ ],
+ [
+ .count = 13,
+ .key = "733f9c3f0e90eb1acc865820bf750c61",
+ .iv = "a1",
+ .ct = "2fe8a9fd85e8c36fbf20ee6e73450319a203ffd64cd785f27034b60d4b223485bbf5db125128dcd149f2a0ce97ed8398cb05da",
+ .aad = "84bc94dad5cab308d91bdf0b1e64b71ec8315a3e7c4a247322e8059ec5ad9a4eececd9f45f5d66227d62a608340ce1ec",
+ .tag = "93a95abbe33ce66beef1b410d4e06051",
+ .fail = true,
+ ],
+ [
+ .count = 14,
+ .key = "b0be91d456d1c5fe6babb1a2a90f814c",
+ .iv = "92",
+ .ct = "e12d15e0fe93411fdbef3f09104ad9489ed9396379bfa62e6e7c336ef6dc3e9d7da8efa2e3c1c82eacf7206bb31da3bca3f283",
+ .aad = "d3b9176f7f8712f14f5fe3ab4321f6e8fe5e3be8323139dfe283874cb50f0e75b06e102efa8bcd1e44a48bf254b42fba",
+ .tag = "4bf598113abd443ffaffcc2e67d5480b",
+ .fail = true,
+ ],
+ ][:]
+ ],
+ [
+ .name="aesgcm-dec-iv8-pt408-aad720-tag128-key128",
+ .keylen=128,
+ .ivlen=8,
+ .ptlen=408,
+ .aadlen=720,
+ .taglen=128,
+ .cases=[
+ [
+ .count = 0,
+ .key = "29a936ff10f6d54b006ada07d8e30b06",
+ .iv = "d1",
+ .ct = "bb6856d5ed2819f00abbe0dc7c5a3c89f2c5646295357fd3f96d1fdc5a44506ba1adab7a26f1b023d57c91e585fd15cd0ee8c5",
+ .aad = "2df994bb078980d1c39a017ec6d104aca891c50e5c2a314ef2476ed533f4859c7f3759461fcbd3a26199bd84f230657f766c4e4c1bf09c7c9be859164240d9ace0a134faeeff16a2f854df1594d7d9092d5d261548424a4bda40",
+ .tag = "8136e7eb40b325c7d26ba27aba2bf570",
+ .pt = "59283d2e827465a238e1a3e802c610a2044e0f239150e33d12bed95d10c32867cbd318a31e9a8c902f0c8f9c56bbd0cb54f713",
+ ],
+ [
+ .count = 1,
+ .key = "198b373c2bcef1e68c03ad3df0011b3b",
+ .iv = "aa",
+ .ct = "099ebe16bb2a2419c8eb59c557543d61457b70c1351d9adc226559540bba9f0dfae0b433f587fab6354aa5c408376a0769c8cb",
+ .aad = "a790fe5152a4f9e5d336a1d0c4658d598f23275736d4a8691ece4403f34a3596768eb60f3feab77e412117d04a71d26a12638df95733a05bc9c35bea2ab051447a39bb6d3c5c11a925d84dce355de0634f1959b3cccf92f1e8dc",
+ .tag = "d0a578dfdd59e9f762502d0098f66387",
+ .fail = true,
+ ],
+ [
+ .count = 2,
+ .key = "90f0f9bb5be0a740df73a4d2c80a2bcf",
+ .iv = "75",
+ .ct = "c2ca9de1c2fa35503b290236c732c374135e0c304b89ec190f33b6041f863d991952ffbc564971df3a75822d0f74410b29a798",
+ .aad = "536f95d26e207e32995f34f3d89f4e6e8cdf7c9f9029daf22e7d2b7ee8c1eccb672b0f9f7380fea2113e8a9bc69faf3bb83c7fe0104fa11de131604fb654e0c53b24cacb51ae3d363087f08eee46e5dd7a846c6ff82d668155ff",
+ .tag = "2796921cfda22e8279a1109919c54351",
+ .pt = "51f79765ec8bb92e2a9dcb6591aaddf7add7bb4f5374267b4525ec151a7accb9baa9531a50a2088263da2ac0b7c2ee06003352",
+ ],
+ [
+ .count = 3,
+ .key = "e2c09750ae3ebd6645b49ff41756a49c",
+ .iv = "c0",
+ .ct = "0a70a37f5106e6242413a33ff2ff1d152468d8cba6aae39b28bed3369fe77e9c16ad0d4f2b8831b239470b43070c5e1c1ae26a",
+ .aad = "977fad02f2a97966ec4fbd56735c26ee550fed34e1189ae705e6dd331fab86f45feb66c3aac7eaa4cc3496ce0b4405793391ca1d9ce2b4ba0ff54ad630667a28bb38a96522367288bfbdd175f8988f881f27d1757c7fb84684d3",
+ .tag = "caf0490059595dc7059a0f74a5e1caa5",
+ .pt = "7f79fa86fcb2886fb5162aee54a48e8170db9e6c8e677633e1db419f0a9a6b54f9447f79c02eeb8f5b4875042bcfcd4a34b7c4",
+ ],
+ [
+ .count = 4,
+ .key = "31f22327f66cc28a50b90d71f96ec272",
+ .iv = "5f",
+ .ct = "e2fa2e6f1d07842366fa9cb1e76fc3673543d189642e854610c0b257226c4eb54dc9488dc5af641d0cb39ee7ab7ebd53d15803",
+ .aad = "91570016ab2eb0f5a77d018e6c79c3746bbc6f7506a9c4b1fc586481075c5004c6956f305f1a08ede8fcfe668c2b57ebfbe69b40a416c3fe6b61eee1ee997b609f104899867fcc4f23a0f1bd906af8ead0c23e8eda3d2e6ea854",
+ .tag = "4f77f9b3ce37e232882b84a726ee9dc2",
+ .pt = "dfce1e5de784262615e1a869c0adb3d79c7165a485c0e0ad5cf981a7c1317cc9415f95d9a97e45db242f09cba7af455ff53cbc",
+ ],
+ [
+ .count = 5,
+ .key = "094befde97756d5dacd76a0c27183289",
+ .iv = "f9",
+ .ct = "2866f75829a82cb0dce89888c8b21c0c90b4bcd2f1debff014ae58baf3ac67a67d0f2cdf7c6a84c00c9aa39d4eda947bbe4f54",
+ .aad = "9a88a9061ef9c0dbba9f2fa2ba8eb20ddc13159c824ddcd1b6a22cb587cdf759a68f7540320a3c5743d6947ba6a6e95a88007f26d0bcf947c7d13227e441586573638b20418736c584a8cb3102b67de98af58ece283b03facc9f",
+ .tag = "86193142a55e1294ce7450d43661ef8a",
+ .pt = "a3aaf80b0fcfc0e026ff4995b166c3d663ab879005e1dfe2b5e176379971766a14a81879aa3624071f5ab88a0d6e3e2e602209",
+ ],
+ [
+ .count = 6,
+ .key = "0addb38bbedd31cde3d825fd026c8f32",
+ .iv = "31",
+ .ct = "18934884c25f98e05fa6023b0a4f9f21569f022bf95263cc008b8714abcadaa57d2aefdf12d88a2f270a8567c75b1e75e6602f",
+ .aad = "642cef191a93604999ccc045eeaa31eb6ff9eaccd6e2654215325d0ec3bedd976d8737084fade490e27c2e78396500c72ddda2cf9d818131d98035eac574eb8b9003a1f3ff6fee0413a6474f479007be942c3e49a40eeac1b270",
+ .tag = "c116c34c65ea6ba7c0b6d15131607fa3",
+ .pt = "dbc6445e1f7c33c6f6a831976c644137fb564379be695358be8e89ceb9c5f34afe0267155d34b55b5471b1602dd161173c16bb",
+ ],
+ [
+ .count = 7,
+ .key = "f9874238cecb8dcb9c18e29e519b2c17",
+ .iv = "66",
+ .ct = "cab0d251afec9d6b5ff2645d4b9b277f8659485e44d1573d5ecc36c9883c36adf78b4dcb9328c494423f149a4bd46b5d555561",
+ .aad = "7bcb393d36e11b1d2ea341c96751c5b8e42d25afcdcbb4b2149f2eb2017b67c03a4c355990d9354cc632d82cd9eb43b4cf012f45098dff7399b24c30e411655eb4d22caacb725e2f5fd40c3785860d0191a862fb16734ac6114f",
+ .tag = "25c667cb7b8351dd02196a62e348a795",
+ .pt = "20f5c14858a5df82051bce2970f41a54b8ea8d40f0e45923b3fa5f5f17ce5f0eba6bd09cd41bcc7d00679c907ed7fd1ee6a49e",
+ ],
+ [
+ .count = 8,
+ .key = "272d2883223770091b8922b63d9376d7",
+ .iv = "03",
+ .ct = "e25e96dfb1796daf3cee9e9f8fb5803f073c113ae54ce6a58db97c28372cd8e06e6bdb9ffc879fdd80d4933c66319442e65e43",
+ .aad = "d59d1d3206d9c1c067bb213b81a9a734081bc316696af9de6ffdf6218955888f54a653a7d87c31190dbb57b281679941e351eb7a9c54e06d618e2b8acb93b885b28a8c719572138bd440ffeceb0f5438af06b2a8bdbad34a1eb5",
+ .tag = "36b27724c0b917d6473aa68760622448",
+ .pt = "a0e9957bdf2e5a6528eabae69d9ab4178302674a094a30104bbdc88e3848bae70af88d06561309162bd873c4286ce86b141a00",
+ ],
+ [
+ .count = 9,
+ .key = "449e5cdac424430a82ffa7d0c2b1cb44",
+ .iv = "da",
+ .ct = "6b4f060451235f64cd5c0a0a7e6a4209a881af775eb205989f85dca80726c71cb94fa89cddea7bd27722c1c196e90d3ecdf66a",
+ .aad = "a5e90b4c9d93b12bbc6891f56ba862b4237ffb9b10c542780c72e78dbc9a37f673ac993ed7e8b07338dd2dc9a89c74558a5710c6e00ee6fb9e5d2d13cc73422b4cd03ebecad66e06f37f8d5c3f30698345e083e80e740b3243f7",
+ .tag = "9df6354c9f70075b4cd05b64d31342e8",
+ .pt = "3a6775e33a942a93a2c8e2700de1e18e41c46c15b566465cd5528f35706184a238fbe412937a1d07099d54bcc06d706195b8d1",
+ ],
+ [
+ .count = 10,
+ .key = "70805fd2f9bb70616a2e2ebd0f395de6",
+ .iv = "73",
+ .ct = "8883e9365627cfe6a5fc2ed9f5f951a6612f366871b84c2a00aa753be9464babdeffcb5fcce3b160bfe2448f2ac66664ef5cb7",
+ .aad = "129d53ffacb9b59cd7a6a1dfb38ea4449ab5d8625aabdc50eca02170771a6910c2048b1627c6abe79bf9adf71c53c305ee7fc174ac3094d7bb17f0948d88cdc6ac03796462356bf8738cc9d49ec1d6d8b0ec8bb283665b92ad46",
+ .tag = "ba3e2b08304fad0b78210f477059d619",
+ .pt = "4f7ba87d9e09f26bd80279d09ad3bc760915d4def639dd9ec981b0057cbae9c5ecfe87e1e562343b8454c1e110575ffda62244",
+ ],
+ [
+ .count = 11,
+ .key = "c1d807d81384c55362012aba22ff063e",
+ .iv = "b5",
+ .ct = "3ebed517b95b847286c300b7ebe30f3c4b8f3eee6e37402044c517919b229511a2565fe76a03042f0e0e7b6fd966f1543757de",
+ .aad = "1ccf3e5d2d302668429013c058cd9934a5dc5cb697a1f4158519e1b7cfc8c75513f3d48715478018b4fc020cc0c5bdbca03b2b475de1575e25abcff6b08c7a015816b55312d250777c965e58e9a6f8d1733c509a0b01642603c7",
+ .tag = "5a321f32c540fd3813090bee713db107",
+ .pt = "3294a56bc759329fb0e2a87511d8a57f2142a8dfe162f3a0331320746eec662f43005e1d7bc1a8d583e0e128cacd1ee10b7c78",
+ ],
+ [
+ .count = 12,
+ .key = "7c03c38ae7f05525f5ddbf8145037975",
+ .iv = "16",
+ .ct = "746d261acbb1a6d5e1545edcb122082e2a3226185be478a0eca09f1cc4b080edec63cae2e41968bf29c39800968eb2ccf5942a",
+ .aad = "b020f7bb4fd30400470c3eb19c84aad5c441a148bb0d72ab9c002f672f0eaf431be44192222ff7254a61b58316a81fedda85425ca617a5f2623ed9907743e67f77bb375b81c1bf582855a2eeedf705ec3eeb58cb23fb6b9fc884",
+ .tag = "4596dd6ca741e9f8a599f90069c11753",
+ .pt = "54bd5b74d3e2860aa769c51afa7e60e955464b2aed2f74fb4eeeda40f84a35687f10f96d19d9a10eca45e9688c813d3aca19fb",
+ ],
+ [
+ .count = 13,
+ .key = "24e45be74dd026868cc0a4fdcdc09e86",
+ .iv = "bc",
+ .ct = "87df15faa24d0683a78804c87500bad353fa7ea6558c96ade4fb5d85c50f5190e51d64a49d396ea34ce95dca2016f4ed96630c",
+ .aad = "716c526537a834003dc1af73f79c8018f8be456aca8098bf971ccb9919b0b7b8c2e09d334e6648fa0d195cbd07284e051d2f765088dbb52a20c4cf1783bdffcc1ef6d1524cdc9b92cb540d205a3a6e3127e63ea9b85dcbe09790",
+ .tag = "5f0faba9fbc69fd4bb2cb05a628658cf",
+ .fail = true,
+ ],
+ [
+ .count = 14,
+ .key = "441feece120cb561d0d9672fd3fb58fd",
+ .iv = "62",
+ .ct = "d865c95e7ba5a6220d9d142b8f423d9f5d0a4e032a21e5db36b97d7c3ed9a6a70866d698c796d7db7ade447095d568399de9a7",
+ .aad = "dda5bd234a4b9f226e87c93eb243147daaad59e48c24c77f94c89cb97470552a7ff60bde6159bca72ef9194d7fb9ff02e33ad07f0349917e434c2f41cd5798fcfd49b8abcee86190a130321832a3386f271e0b4e2de7ed72e70c",
+ .tag = "40d69727fa6a3d4ddf5f0482e61ce5b7",
+ .pt = "6ce7e6adfe7ffea7086d8fd1ba0c6c8872303daab9ec41106ac019761e77f998a49a2d6fea8b16480df22df4593bb6622858f1",
+ ],
+ ][:]
+ ],
+ [
+ .name="aesgcm-dec-iv1024-pt0-aad0-tag128-key128",
+ .keylen=128,
+ .ivlen=1024,
+ .ptlen=0,
+ .aadlen=0,
+ .taglen=128,
+ .cases=[
+ [
+ .count = 0,
+ .key = "2698eba4fb3a0f82434707b357f6f101",
+ .iv = "19557bdaed00a43b536340d1bf9fb8a47522a2bc4bc53b008c9cfc570fcca3d8282292c5b55c4a2ccb94058aa3685dca772fee74b6236b733cacb0772717ea07002a6a50ed6ad17678f8ff00fb172e14a717af278211f55345e49eb68b12175d4ad1ba74e44bc06272f14a27ae1b1f89fa8bfd4851a90250c762fc0343f87494",
+ .ct = "",
+ .aad = "",
+ .tag = "abd6606a82f5ac876caab5150007aa49",
+ .fail = true,
+ ],
+ [
+ .count = 1,
+ .key = "86ca97ede9ab63b934f4b20896c22d74",
+ .iv = "0fd1e4e0cf2724cda5242094826bd699d8ac2e58d39cef5cf0fa894ea45e0c95336b622f8a2eb4969c0564f2aede2eb1a5ffca9f7b0dd6bccec1770bd6c845d88e2a4143a73cf71ca7dcac4e4cd76f1c4ddc35ed0037a96b0d567d32dbe8805ad6fd3344e7fc9384e1a5d1eacbc8914f39179aff2170b0ca2d384a3e731f55be",
+ .ct = "",
+ .aad = "",
+ .tag = "a3e579d3a8f1d6eeb7854f55207ff863",
+ .fail = true,
+ ],
+ [
+ .count = 2,
+ .key = "6e3a3b7b1cc98c1fa4754a7d63547427",
+ .iv = "0c87956a3ed77f63a98a97b7e6fb58bf6a4426977c3a0a6409b79e1c536229e229bb69eb376563b168c1823dc2e3d9988a0f843b4d9b872f9119bbc00e3146605c4b1ca715b9e272e59298905ad1abd3b0981969028f94441223ff927419c17156d0110f165539a883ece07d6a81d00d5aa52fa443e97ee05e79a7183de46176",
+ .ct = "",
+ .aad = "",
+ .tag = "8dcd0426704986f4fe7257288466f2b5",
+ .pt = "",
+ ],
+ [
+ .count = 3,
+ .key = "bf3956f15a6b68c7dd78911a31a690dc",
+ .iv = "8564c019d183eb409932574f6bae24d290dcdad1c310e88778ac888fb48dcd707869b841658ef5ec46c6a123bde6a61b0562df3f8d28cce03229d7c8da40a8015b069f501a3ecc0db135fe15b240b0973791137cbe37db8b1e1ae2cb9436fe3d2ffb1a77e73bd6b73323fe1075d5aee46bae81c0265d79941c6a1ef54d219675",
+ .ct = "",
+ .aad = "",
+ .tag = "bae1342ee18430076178a2f30434aeec",
+ .pt = "",
+ ],
+ [
+ .count = 4,
+ .key = "049fd4eb694148c07251a981180f04bc",
+ .iv = "46d3d1b6440feac157c775f5e1574b16f90593bc06fc4089310ca78fab2835aed24de2e6bc7824ce51b58320d256c8b2db70ac0f413a70188aa488d775ff510ca60e2cc77e1ce99c26c1ff576d351f153e87c4b8c21ea2ad0dbf023ee3c2cf55797c7c8a70e0dd487167e75eeee75105ef9bdaf4ace1b8564ec4996295f6aa97",
+ .ct = "",
+ .aad = "",
+ .tag = "9c245d467a0eb570b02110f7221ffd90",
+ .fail = true,
+ ],
+ [
+ .count = 5,
+ .key = "77f99d667f804ec364b788211cbf13d0",
+ .iv = "7ea97f9de4742c4ed8ba41f990bf41e2e503fbfd386086292d4f3c6e74c86365a88062e3893327bd4d4dc7e2ac18d0d3c8d551222b51f67436d5012eaf331c98a6925425168c8dbcd3c571fb6421096d205027669413c44a0f8711b52e3e094af9ece6c9fe80a153f22a2ce4671f7a3c31bd0cc583b3f4984aabee057b67bf8f",
+ .ct = "",
+ .aad = "",
+ .tag = "0581b3354d685e4f32f9bc8b48d36c61",
+ .fail = true,
+ ],
+ [
+ .count = 6,
+ .key = "656ab6b315cf9329ef3d9b924e0cdb39",
+ .iv = "6bacdcf85b10b25c42e08d58eec3da37336340a0aefa10d44f32db8240a6df582fa99ac0e6fad379eea5cf152f4e546df4aa4efb1da25f93bcd223919aac79850d8e3019d65e13a3193742c77e288e47d070bb80f827473987777fd089d42ea3f934a2023d2e7564316ec9ebb9c215968426f66faef8b41c8962b4b3fce881ca",
+ .ct = "",
+ .aad = "",
+ .tag = "12f585c46f7e3a4e699ccb35a6ccf701",
+ .pt = "",
+ ],
+ [
+ .count = 7,
+ .key = "3d70c5444d5a7c2c25fa928be6e0817e",
+ .iv = "bc4fdd3a0d71d81729f83d9ac71f4d17511e53a3392372e0b9681a79935eec2a7a1355ca4f252cae01fa34cfe7a2d205ffb558522991cd1292c840df2c0dfa86e9c0224e9c715f823ed87f3343da7ab01417e16d9222f2dd920c308c9a8920beea22ddc9c35b18d9e3d3086cfb10e3e984fd1a108a62dd0f0b92436390f24e96",
+ .ct = "",
+ .aad = "",
+ .tag = "22f68e8d3c67d7750b24a6ac8a899166",
+ .pt = "",
+ ],
+ [
+ .count = 8,
+ .key = "d017a6ccf1bccc40d1d6ddebe7da7011",
+ .iv = "80a7330473c1356a06b9d3ab4f375049eb7707de7014b5b2ac66557876ed06217fac2b096606b209716d72593213c678178d7b877ed5a52e227b42efbe1e64e7d7455ab1095bf04323650effc81b938b8fab92cc24e69da45ed17e4be57695fdd64155e728adca0a203ee8936e8edac32babde967e441952b587f4515c1db0dc",
+ .ct = "",
+ .aad = "",
+ .tag = "87946ee03065ffa10180aba4a042bdfd",
+ .pt = "",
+ ],
+ [
+ .count = 9,
+ .key = "a1c1b4cbb72796b28e5342f9fedd37c1",
+ .iv = "e699957cdbefd9db1226e3cc776db4e2e1ab7f606ac8aa2a3e283b83746a5e791aa382ad8f509062434d300b97aa1fa4ed575b032551213054cfbbf510535fdbdc03ed4bccc4b38dc97b6cf86b984521af052100ac1ce5945628f8170b4391266242ea2fa6de3b81a2fb7f345ecd6fa77aabbd04b26c837c67742c24f7c84a7e",
+ .ct = "",
+ .aad = "",
+ .tag = "2145dd363f71f87a4ae982115f39a4a7",
+ .pt = "",
+ ],
+ [
+ .count = 10,
+ .key = "f3d2d789871fe8dcf1a3f6a22a4c8892",
+ .iv = "6edbc755d060e847ad57f36bf98eb5685949cef361700ddc41d25b5a0426558cc68cdfe8188ec08e4ecfe74d25ecf5a7ef8d9d925bc1417dd8268ef83b7bdb5ae7dd74374da0e7c07d443b633ea9dd12f0ad9fc45a13679033a0e8d6fc8042daf2d11c0ad23aa0bf39f5dde185421fdb758d9aa789cc313f7833225e4a33951c",
+ .ct = "",
+ .aad = "",
+ .tag = "0716715bfb23ada41cc9756cacd5a7d4",
+ .pt = "",
+ ],
+ [
+ .count = 11,
+ .key = "c272ef3e342f0d0281b940e632af6250",
+ .iv = "a0558e9c039a95bacf6c3251a1a50fa1ff8b94adaac5513592eb1a3fa78f14dea02179ea66e96f86204b8af71382048abff5a4479d6fdf92c6f7794f33ae633b26d54fdb1a5dde9a84ca5aaad1566df825cdcda58a85ad8ac2f8a33d72f7c23eb57e9107779aa2d6782a7240e2b63d7db9f83df279d35db09ffc8f8192d75257",
+ .ct = "",
+ .aad = "",
+ .tag = "e2d9eb454311630ee10d76c9197e8435",
+ .fail = true,
+ ],
+ [
+ .count = 12,
+ .key = "8f1fbc5eae204f27a156d8a889c18388",
+ .iv = "8e8dc3be144dc4b1907a3c7fa5ac7980337582627b5530cd551d2d48b39d06e72dce0eca17895649f1dc39efcdbc50d76ddb997c214bf0f87c5a80bf7e85cd1586f8e366ced207263d68d33d1bdb3fc5b91bf1b3b81a2307a3f21e3483e1d842f04e69821703963ecea9f749a90807b7f7e0726bfab9d3eb648a1147d9edeaf4",
+ .ct = "",
+ .aad = "",
+ .tag = "1aa13785463f815ad5558dd4672aac4c",
+ .pt = "",
+ ],
+ [
+ .count = 13,
+ .key = "8eac649f7716ea1044b51c8bcec69f11",
+ .iv = "031b2052601eef4291d333e7b55c2ce34a73ecfa68c26a2e1e41489dc8d2310d106ced0a46d4daef19de4c06348868b086a6867f3d053bcf28335e3a63e7e015f6831e494a70dfde5e7d1d265ba1dae0f56fcd085138817a1e928e9b0d434c4d5ca5eebc1062fb0d588d7f79fb6b4f3831407358904df0045be68923503b2b3c",
+ .ct = "",
+ .aad = "",
+ .tag = "77e3a05f80c1d2feddfd372f708b702a",
+ .pt = "",
+ ],
+ [
+ .count = 14,
+ .key = "135e94f940c219a0901b4b16a9cfee55",
+ .iv = "22949b04888e85a055658debe0ec94b34eaca6a3b3722abce44ac2ee5c61a5179a90ecd77a2db496072392c745a097f132b352150c2226dbf8fbaba5dc570a2edb841d994e39fdd20bbad63a611c282115b63e03974e755cfd731572a6f09ec46df2436f577a83e351b58fb8ca40e86290dee740e778a66aebd93d0629d0e561",
+ .ct = "",
+ .aad = "",
+ .tag = "6d10c65a984cda6ec3fe80314f505535",
+ .fail = true,
+ ],
+ ][:]
+ ],
+ [
+ .name="aesgcm-dec-iv1024-pt0-aad128-tag128-key128",
+ .keylen=128,
+ .ivlen=1024,
+ .ptlen=0,
+ .aadlen=128,
+ .taglen=128,
+ .cases=[
+ [
+ .count = 0,
+ .key = "6ba50a73e34cd5abf7296d9601eb2261",
+ .iv = "5dd179869c35c5663c9c82ca3d1f3ad1956cef820ef2d0f107d39e549edfe9eaa3f9398014730fdeb58a7b02b041cc081b7db919241225437b14c3e0457f9649d6cae20f15955220cb15251b8832b215b58c1e353b7914b160e9f98d576ba9184e82c90d37fcbbb3eb9b64f491fd3eeaff3cb59d72965f081024d4e773fa4a51",
+ .ct = "",
+ .aad = "b9093014389d4358abe929f37627182c",
+ .tag = "081f655a59c78336e22e3377ef710512",
+ .fail = true,
+ ],
+ [
+ .count = 1,
+ .key = "ab3e287a7d74b07fe11823c55b7b4a72",
+ .iv = "0e429f29eac9948abdb9648ecb043a45745e026e4e975f784dafdfb29b22893f6ec5eef2f4d1589849c0f685eb40b482b37732ed73583d85bb8beb62c1ac36fbff0e6398c0bc275e2b269b8959bd0073101f197bad6a14334ef3ded4c17d8138f8e6be47e6548f20e9f42b38ef18226fd1fd0fbb21bdc5b8581d358e4f826d39",
+ .ct = "",
+ .aad = "77f318a4adf855d7dd0f6ce8f1982404",
+ .tag = "7833f6e237ddf2facbec7c18acf45d10",
+ .fail = true,
+ ],
+ [
+ .count = 2,
+ .key = "44ca3001b61c68f0e7ac6cb5a0a3c36c",
+ .iv = "dd29f96c3a9c8c63d37f8604311569de7b7fc6652f199319557f6ea1adfb7cebef8d0dfbfdad8f32df87e0bed58972dd25b3f70732c341bb869cb78b2914a76cd3a116d0414aba47ad385eaeb2e4f3741a2418468307bd7bf90331fb5f67c7ca99ed6cb1963c781679cf6fd6583f4307cc64ebcff212d4165bcb7163ced4538a",
+ .ct = "",
+ .aad = "7250f0807c0075c0fc86740258aaaa6b",
+ .tag = "7303d1300bfb081677b6863ced8b9374",
+ .fail = true,
+ ],
+ [
+ .count = 3,
+ .key = "8b26b729acc48fc0ef070fc1131dcd67",
+ .iv = "5e402032cca5af52d61db8a7279d388d60b96948e96b1ac0dc64adef339900e5743bb7210edda51388b7bbe3af4f1c660027d6adf1327aac31c77c93fe697949428e2990f6fb1f274db87095127306674442afa902d00df8eeb23706c80ed815c287d0e6ae5013efceecc0492420b800e3f45ca96393d58896740eac7d594457",
+ .ct = "",
+ .aad = "59e64a9ed45e038352a894a8bb821bb4",
+ .tag = "2eafb5e80ecf06014bbe8325d01e7d15",
+ .pt = "",
+ ],
+ [
+ .count = 4,
+ .key = "fb2ac2abde2f7cc2ef6f00dcbf91be48",
+ .iv = "660296834e31362a1d3cad5de0dac45b749da0a110c8f520a056c6a24e427a21d2636cf1cd026dbf34e6b15a2f48b4ed535aa74cfc250b9397cc925d3bb64ecf7f2a38609d5f756d7b78da407581b1c0277a66e3588f094dd3b50330e82dd0e59473b0932c134d582e9ab59ca2f3144a53199d3cd81ed975a0eb4d8f61ac73b7",
+ .ct = "",
+ .aad = "a2505132ee7de9f7494eb152205069af",
+ .tag = "a7a7a95c8c990e532b568ae4358b702b",
+ .pt = "",
+ ],
+ [
+ .count = 5,
+ .key = "54d5eec0beca60a76e6ee53ea825f0f9",
+ .iv = "5e714e0160015dfefd2a84f658295744c5d8bcbb859b0b4fd474e1d481e9c5ac5342247064a6a3b2b43040dc2e3718736694561e954ecdf5f41aa242516727799bbb135ba79cf540d4f74a181f0aedfae0c49711c11a0c8559be271273acfe6a7a66565f9eebebb81a33c151227bf2ef58526163518e08b32f5d3cb8a87b4088",
+ .ct = "",
+ .aad = "af660fe99b0b4fd1acdd1683d693dc44",
+ .tag = "855d8e74b88ebf7aed4a627c654584cb",
+ .fail = true,
+ ],
+ [
+ .count = 6,
+ .key = "f0718ca551cd4963ed696b1853c49567",
+ .iv = "987f22b9c951e63092a1fed384b1741cca9335b663c76db5db409f59a0540ce6591ff9b0dd4f98bbeff9e0fdc89240e78cca3d177d1af8e07fdaca519491f23d666cb7c6fd77abdf425a795ef4b8d7ca868f6a04393571d967bbf736e3618ebb09233bb8aa0ae47775ab5cdfb5857cfbfb508be0ffed25653b89e718b28325f0",
+ .ct = "",
+ .aad = "59ca32cbd7de94ba02f1be77bbf2dabd",
+ .tag = "227d2672ab0454aab09233b9b8578258",
+ .pt = "",
+ ],
+ [
+ .count = 7,
+ .key = "c9c791ee37631fba06bd23bcfd559b9b",
+ .iv = "bd2ef8e8f54aa26fe808382eeafd763c451e6a215b2a95d6973c51cdfb80c55d2cb1686685ba615c282f0bf6fc7f3272e1013509dfacab2ae1e65e79df241b1a8566afeb72f020281564b2037dbfa02b40b8a7a5312413367742a6bb0f514a2659979d0ced4f2e83c8b806e4318cf120cce99f5e649288b009c0f0a638aba18e",
+ .ct = "",
+ .aad = "4847ffe93e9ffc83857eefd0eab14fba",
+ .tag = "49aae53cda0bb66407d086537582e466",
+ .pt = "",
+ ],
+ [
+ .count = 8,
+ .key = "220e9f405c4941f8315e6d150e0248bd",
+ .iv = "47e70a89443d5644b5904890fb4e6b3eb259dd7f9d6ec511c6eeecb551329e66f123c1c1c6461ab11d077d7021d488423463a1cccb81725e129d4acbe3c7a5177f238522e6beb6efe3c9370d2b605e70a17151e6be33db428ab9af426ae9b9b6eb7ce28f2eb0a61883d3ea3c54da872bdfc23ac7571603d56e18678e396644c3",
+ .ct = "",
+ .aad = "8d3f059345939e4e17e5223264b31d5d",
+ .tag = "7b84c0a3ac74248c1f2af3871b6458dd",
+ .pt = "",
+ ],
+ [
+ .count = 9,
+ .key = "648981d1465310c3df541c5786c85a5e",
+ .iv = "2b8b6be99f922030ce66c66a438e80eb98d8145bcad760c537692d0c4329fb2f7e4b67df929017bcfb66707e976007b74682e9711f2176bf0aa8bd3b7b4d9431d499c3fd7197c9354509ca1cee9cb2ae7435be32f5ecbd631a22d8b8541536e44b5119e838400e80e54341693553c0134d104f78570424395b6ae6c6eb773f93",
+ .ct = "",
+ .aad = "e28248687f1b2d8ab90e9ea838287958",
+ .tag = "fe88992765a1bb713e7122a3f41760a4",
+ .fail = true,
+ ],
+ [
+ .count = 10,
+ .key = "9870f8402ab149674898fcf6f7daa3a8",
+ .iv = "08c4acb999261c3736e76c1c09c9212b1c8ebf8dee40e46806f7b79239486f80ad815cabcedee5b9dcea3bdb6a9e1343cb5f779e22609a1d5042e47598c5d801b8912d7f37859fb824de33923787190e77cfbc794f4038a23dec244b2ae38a9ddc963292dd16cdebe1f0d9850c9836455e6b5ae4c68caf3559b6b19175023d2d",
+ .ct = "",
+ .aad = "0219d5db32890ff1d15eb04b415b5f71",
+ .tag = "9b41d7a78b8b58a703a47b9d87418b4d",
+ .fail = true,
+ ],
+ [
+ .count = 11,
+ .key = "15cb69eeb74e6d5b3825e1d4350396f5",
+ .iv = "cb757eb004a4d24ad3ef5e5967de5719ec4ceadb13b6737c3cf3677a297c562292bd362dbe870493b420094a7039a627b2f266b849f0c762e81ada892203f1deb033cb856a38dff175cb2d3425a964f2787bcc0f862e44488289e51e04bd051becd16394d6787bdfda56265f303ce6262c68bb7e0dcf79047a4c33b005f583f4",
+ .ct = "",
+ .aad = "80810d8960e82b41648cf688d020bb91",
+ .tag = "7f815b674e21cf0710ba867044dd143d",
+ .fail = true,
+ ],
+ [
+ .count = 12,
+ .key = "f30bf6a4f330df7130831faa56f77fe8",
+ .iv = "e87f371a92f2104e1c881e7653f58edf7a65500b3dad0201ae31bc3f75ade2971e7e74bce6f05174af87f63a10933131156be10580cdd365508e35a8fa58da3cb11117ce1b3081c911883b9e83b7f91ffc5c7ef5a2ff9bb02a39719355795b04fabb51d5bca456aa5909dddfb6a842ea509bbb2fc6eb1364147b4fe1fb0456cd",
+ .ct = "",
+ .aad = "ac5af17cf1463ca7d432d13659064346",
+ .tag = "7d6138a07442e0674cf67a20ef4d22c3",
+ .pt = "",
+ ],
+ [
+ .count = 13,
+ .key = "e373901c0c21866bab83231d845a39de",
+ .iv = "5a6a9f61029617cd335fe0816c793e9e05811ee633ae63aa7f53b1be0406c40004f64926aacb46e903fcf6d79abc3f3ebb9ea003a5709afb654213bdc3d96207e6cd5be10dca9db58e7341ab76fc1a2c34011ee2ba14e5e2645a02391f321a9f90da66e3ab35c8e5366723cef67585828dbb0c8da8266dc660682f1382cfe63e",
+ .ct = "",
+ .aad = "0d71ff602c5a74faa7e267b163363b76",
+ .tag = "7d8c192fbb8fc33f525239450d2cecbf",
+ .pt = "",
+ ],
+ [
+ .count = 14,
+ .key = "d3e36db6af7b4c9b08e4049280abd1aa",
+ .iv = "c8665098d3a9cf3174c87790ea57d44a047aebd38afa237e2bccd15f8ce3873295e8b145ba0284855737655dcef1ef059d03f888244606b72dbe674594b7c213619d78fccd2a7292646bbdcfb9d213040ce3ad4cb767525b627eaa739689b9fa93a4f637127f174ccafeec4daff77bd866b5bf18b3aaa7c7beb523e27b785ccb",
+ .ct = "",
+ .aad = "5efbc45b6ad67f24a861b92566783abc",
+ .tag = "16c9f3abd3275b00850d19d6ed47c3ad",
+ .fail = true,
+ ],
+ ][:]
+ ],
+ [
+ .name="aesgcm-dec-iv1024-pt0-aad160-tag128-key128",
+ .keylen=128,
+ .ivlen=1024,
+ .ptlen=0,
+ .aadlen=160,
+ .taglen=128,
+ .cases=[
+ [
+ .count = 0,
+ .key = "642f248d1137eedbe7ec118b58c34e9a",
+ .iv = "3bdf2db303a88a99b25a148eee5075696556e6ab858c8cfed204f73ca77d5b0b2f82046f7d97d278e7a7ade35fcaf7f14d85c86d0fced4dd122eb94ca2326c18cc43daed94c8edf5b359314bbbdbd1574c0c3d62a71c9af706aff8fd98ba1f18d5853a94e8bea0c07ad0ecd69b74b0d0f3b994ebb1195eb0ecb727e85fc7038c",
+ .ct = "",
+ .aad = "4f91ee91b25715825be1f3425964ec0b7a4c439f",
+ .tag = "90f4142ec8d83d651b515279fab06342",
+ .fail = true,
+ ],
+ [
+ .count = 1,
+ .key = "777ec8bbf8d3955e8c517b1769ecd116",
+ .iv = "264401e973db2df8e65d3a6632f0177267f419117f6c6df6c15ce23bb2160cf9696495596edb4e3c421b49a01003a91854cd565e7edc88e2d06b7881bc8aa9f71ce7610976fe44b442147969cb59e3fb265a2ccf9eda1f0efc8dda7b8bd8dac6db0541a337c2d7283c36054ae3a24b34077a06d22354f2a31f4e23909da06d65",
+ .ct = "",
+ .aad = "2730bcb19cf9963e6326eeeb9a7e59a6bb96eea6",
+ .tag = "b3887478297d44251cca103b1d69c021",
+ .fail = true,
+ ],
+ [
+ .count = 2,
+ .key = "c306d6dc2a814a1cc75e92679b48c595",
+ .iv = "b2c0d0802c62694b6b3a471abf6c021843bbca380d39e5401c7821a478097a7dae6f2cc744a29faa2e7d89e22c65245792946164cd3164677b724d58decf7c7b96f428238adb690fdf4e3ab64e65cb6eb24448c3e1d95819c0efd69daf0eba89a61e000442ed0df0395d6b22627c344ff91cafcea55bb4b54b328faab91e79ed",
+ .ct = "",
+ .aad = "0922d3f812ac0efb66d8d4ef7205937665f6140b",
+ .tag = "d2007098a3277c6644fd931b7157545c",
+ .fail = true,
+ ],
+ [
+ .count = 3,
+ .key = "3fcee6b7e87ff79123a401d6d8da3e27",
+ .iv = "260f26fcf32b6b12de39a1026782afeafef1529224bee533669cdc816c9632e382695b14e52c0695f0a29f1c91c8ed6cd7033ee200c78f136b3cb44c119eb5981a9403abae035f3f1af6f8fbd0b32d10385684d44521217a6c78b20e265273b8486ada5797bc6395780aaa81dcc867e57a7c76323f289103624b5640e0706ebe",
+ .ct = "",
+ .aad = "1263266a5aa71fdada17a35f9c072167f4b96fb2",
+ .tag = "b85f1af6864878b260e7c9881ee6412a",
+ .pt = "",
+ ],
+ [
+ .count = 4,
+ .key = "37853155fae2676e8c22d5e5f2147271",
+ .iv = "559ea369e453d35e721c14f9499d3742d39c0b087bf7a1e99d5f203fc3f9dd706d16c6da1ac06d81e91d1b1ff539e49c55a4dff9d8dcda36794d4fe7c1226249b98017517d2d194e352964ce4496bb0aa87ce241d6a79d591af34265cfbdb136d45d5bfcd648e6c772b18a733918c1359ec543d3150dd89ef11d8e418f3c459f",
+ .ct = "",
+ .aad = "4f1bf816b392f6d79d15ed5803e6993bfdea77e3",
+ .tag = "4bce88de4ce6fcb87e1313a94a4f0558",
+ .fail = true,
+ ],
+ [
+ .count = 5,
+ .key = "088b43f97d5365f03a0e7cef01858e75",
+ .iv = "128c6bc50ed32e2b15d90d9ac76b13f2b7555be4d5063b64336560d26794e942907ae0772dea81302856962af1a8f863885dee19cf0c7cdeea829be08d4acfd1658576f164621b11d65e2857f1cdade44a716a237e0ebeeb8ba8990e8310fd8aca4d52061efc70849319f48ff3aa99301b0879c5dae98158ac93fae398cfb6ed",
+ .ct = "",
+ .aad = "33aa06dd7d7932d2394adb62836701470f310b01",
+ .tag = "eb119a403b4e14b9e3d2c71b330293f1",
+ .fail = true,
+ ],
+ [
+ .count = 6,
+ .key = "63ec2dcbff26f3f09cdca270d3fcd6fa",
+ .iv = "4b8a7947a14458303ef2b4ba9b77be0773af567847505a790ec276b09474b41c23ad7b9578065f0e7b65c9204e7958092c25dc661721ef50555b0f061826da7d177827b182491f27ae86290bd6e436dd74a9d6c74b1e37f48a843820a248b07e44829693efa1e3750bfad8ba895f2bfb1eabf539ef4734795e76ab61450621b0",
+ .ct = "",
+ .aad = "91a80d0edc0a5bcc6b27a2ba7537a0fc6ae4008d",
+ .tag = "83dbd460a319809d331e6649dcb799fb",
+ .pt = "",
+ ],
+ [
+ .count = 7,
+ .key = "a0e09bf508f223f1bcba43a0a357994b",
+ .iv = "f78bd71d4c8c97588120ff1446ddf88ae8de5583b5a2aaddbb91dbfe642f2512b60a8a2f6c4a8e65da592fc16519a675da28fd79df966f5518f2e1f83747a997a05d7d1a5f7ea5bbe2d657bc71f3199364ced454fb7dbc86e4fa422f1dab585ca547d8c96fb28b7e405e443c39f65903d434950b657ecc36cbea8db3a575527d",
+ .ct = "",
+ .aad = "52353171c2d59f0153dedd1bda4ce0d6d2242867",
+ .tag = "8bc1411ee51aeee0a486d5842820f1ed",
+ .fail = true,
+ ],
+ [
+ .count = 8,
+ .key = "905edbec59f2ef3a324a2889a683ef30",
+ .iv = "4e6279e89a8bfdb830ec7f2abf1ee3ea966cf72ed375c05239a4d8da30837c22d9f699cf38dbe0cb59df1b0aba84dff90008325609253d26d0b92d97e72f0e0cad84ae79131b146ac99c54cdbd1555cb793db0b5892d5b3b880c53fe26f898ecf9dac2c642c3fac6960b847c39877d9bf1640a20fb98eca7470d0e01d29e07cb",
+ .ct = "",
+ .aad = "7604825285ae2f0b90046e4dc051fe80e1747265",
+ .tag = "4eac1565914464deafc05b65ff44dd2d",
+ .pt = "",
+ ],
+ [
+ .count = 9,
+ .key = "56596c39ddfa852ba04006fa344dc02b",
+ .iv = "235132438ad2076600378a4afe479b7157b4e9d75c8d0be0db88766c4bca4d37cfba978715716d39d16b8b31872d608ebd20eb541eab1c40480ae12a6758e027bd325ac9a17dd5d1bb93c8ea74698953f0b61ec4ef9e7bb00ea9de08de6586d490ccfda32ee9957df47cdd2a3b1037f8fbd46b0dae1d55c592cde7a484c1e20b",
+ .ct = "",
+ .aad = "664a423113c198ff195181210547e44a947a2e37",
+ .tag = "aa9adeed8a1697e15c47aa5de46c9e79",
+ .fail = true,
+ ],
+ [
+ .count = 10,
+ .key = "57302716abd073161e4fe0bad1bba08b",
+ .iv = "a35fda96106dcbe36079e24e477a5599c05aac6c2406a542e3b6d1038656f987dd1f287df456544371e7177883ffefc6b0591757f74158c4b8782b2c40601ec02ba377443c2de89fc27bceca9cab0ec5215abffc0878a77204ba6a374ab09dea98626f9f77cb1f9c6e4de567daea4825391d9007fb2b7c8e3d903249a09d7acb",
+ .ct = "",
+ .aad = "61ad3895b40751fb7c70c921e2cd4939bb3f1ebf",
+ .tag = "f1ddbaa5990e96b04bb04b412b61ddb8",
+ .fail = true,
+ ],
+ [
+ .count = 11,
+ .key = "13e77f1a6348c5c60b811f11ca27e30b",
+ .iv = "ee6f811e679ce684b5c43daf9e150136814f2c9d44ae901a53b877fd5e071df40a76d30c56f42d4678d909cd35494fb5fa382fa242be20316001cb7c153e62cfa19923ba2ee33c92c566201fc22474f7932260423e9f069405fcb6676fd61a688637f3af25431d04bc40b914d69182709e4b2d9dcc19a99345e8e77c672ab2be",
+ .ct = "",
+ .aad = "d17c6d40db6b186cadee37c6855a2d25fc7cd4bb",
+ .tag = "b1a9315338787936f787f1357ac14018",
+ .fail = true,
+ ],
+ [
+ .count = 12,
+ .key = "7ef644a0749fe0387f59771b367656c4",
+ .iv = "6c83591696c6cb6dbd6539f8eb0375dea6ab86e955533353d295366a2cd511924f43849c018e394aedcc6d9db19c308921d0b685d65a5688e6c9629cde6279c5562ee9bf31e1b4bb7e5be1e8fb2c1349dfeeade156d3e65d334a48aef772b807c1a887fb786b9cea606ddb9e07bc848a1b78a302782dc01393b45a98a3d2fe01",
+ .ct = "",
+ .aad = "7803f1b9c6827e24240ee3fbb0c94b8d3926726b",
+ .tag = "baf92807f5a6ba2697ef6676531395d7",
+ .pt = "",
+ ],
+ [
+ .count = 13,
+ .key = "e2d1b46fa86c500c4bf5713ad0c55c19",
+ .iv = "af45b18140c8e1846577cc3e3578267dc2fcf0316d4c5eae6ad7b6a54e40dbbd7db2b8ae1d13e52f14e0d0a3e96f53db20e6d6e69d375f3e0750e1d8edd8dc3b824d4ae437dcf4e49e9f013911d41574233c5ee37dfbf0408793ba135b2d6196ed59ca3f21872e20bc7218098c0a5bfad36c312aff4143855d14777f69a448a9",
+ .ct = "",
+ .aad = "a5ffd074ad79330fb8f859b3378d69720ef377e0",
+ .tag = "8fd57fa36ce0a6d1669fefc3657bb5e0",
+ .pt = "",
+ ],
+ [
+ .count = 14,
+ .key = "23f407aab2210e36415d5236ab57dfb9",
+ .iv = "395635dc2a21cdfcedae3a01052fe9a3469fbf5046d613e1f52242cc5cbd3f0c9b984a4b4e9219c946af78ec5a261b5a53869860bb1a40b621abdd4c4dda770d0bf092a932e837f80d4f5aca1bab5fc09e38b918dbce8caea43080735bf8826acec208dc0dc478b39d9344ce7c9da0e80a6900edf4deffc1e9bf8ecaac25d774",
+ .ct = "",
+ .aad = "7319d23a054af4d3f43aa3dd73ad8f25686239b2",
+ .tag = "1de74de0c45293c36935b6bd694eac87",
+ .fail = true,
+ ],
+ ][:]
+ ],
+ [
+ .name="aesgcm-dec-iv1024-pt0-aad384-tag128-key128",
+ .keylen=128,
+ .ivlen=1024,
+ .ptlen=0,
+ .aadlen=384,
+ .taglen=128,
+ .cases=[
+ [
+ .count = 0,
+ .key = "267931611b41eed650b7167b5da300a2",
+ .iv = "e49df17e5d73719c0daa9ba7811135914c76dd362adc7b5dd12f48079be435cc6a63a71e8892c301acb34f2fce2df59f0e94130c346b82ad82adc1672991a7b2cc2f61461a33159e770ca3741cc30a64a49ecbf3be6dce7782d712be99f298b230310f54a1889f1dd87b0a2bba45b3cc6c1083a4cc11beaab7ae0f2398707eae",
+ .ct = "",
+ .aad = "399dbaf0a033ff30bf0d2d5ebdac2c5f378e172faf0e1d129bcdd7c1a622f415d877c8d7d999606b4fb09731fe881584",
+ .tag = "4a60d3f7ce8eb766f8aee213a9391d41",
+ .fail = true,
+ ],
+ [
+ .count = 1,
+ .key = "73ca176c21acc6bc3ae18a1f228d40cc",
+ .iv = "a5acae39d90fe8f9c6bafc597768b3b704c710f81417b9d9d579ab09227d033737ddb01f913e3a0b7f78d0f6c5d5820deaefb362fe2ede1a2a325f5b7b7e85ba4ab09b5f41349fe067867b25fe5d78c0ac58804c09fcd6e23d9598dd9a74eb4b45034e2390479cce1987ce08b48a98e6f20e5f619ddcebd97d1dcd671085589d",
+ .ct = "",
+ .aad = "38fce347360aec27e5e9eac39a6586280d5b08084147f53ac065a0af2ca11f8ba7d629b6cc949c0e05809cb8fcc399a2",
+ .tag = "c766a879191d28113202ee0fab2092af",
+ .fail = true,
+ ],
+ [
+ .count = 2,
+ .key = "c1df7e800cd41922772a46787748140b",
+ .iv = "3079c63220b573017d01360f2c73dd003dd64a8be4b0909062dd0404cbeae8f76269170894d0f266818f9378682a5cd84af117d0593a43277ea016d55506668991cff39fb58e6541f1f47b80ae558f485be097db67a9a3364d11841a525270248e4196b8138802eb9827889ba15fe7b02737cff8e236ca3dd4f2c8a206ff3db5",
+ .ct = "",
+ .aad = "fdfb5b6f40df39b6c3e4b5a20ab205f69b4f9b095918403152db0e82af5fe7d80314b2b9a7b77f4c0b2de84ed44e806d",
+ .tag = "1575275f2679f424bdcd00a97994a7de",
+ .fail = true,
+ ],
+ [
+ .count = 3,
+ .key = "6fdae6b1f62d89d49bf695616c5733a4",
+ .iv = "340be7e09bf0dfee8fa35212b76312bf1a0a4cff455a6b1ec48cbab26b55e4035aeb2472de0c7968cae939d31677e2cdd646d5b31f2e238d31f1cc30251e80bd62526fb099aaabbc237bfa8a860c8d6887cb4bc316ebb5fb3ed75c725633505e4219a4b1b8dbb567848b5fd7b477cb16fe609de7ca0043dbf8866d4587b3e2bc",
+ .ct = "",
+ .aad = "5456a34f0a784cc59dd36d0ef57f0a056dc9ab2e11a3aa05aeb6a7cac3598c415e8c87b84c45dd9d92312d265dcb4e82",
+ .tag = "7b60b8aec970f283a2f55015a018aec2",
+ .fail = true,
+ ],
+ [
+ .count = 4,
+ .key = "94e343ff52476c569ce68d7698692579",
+ .iv = "caefc14ca5d4b8130826d7c23a30f02f1b158482ccdff3f914e7f589582bf847b1b3e607e2244b7d37cbe7dfe25b0e7a1fb2f7c9e1aad4277d9d04e59810115bc3fcdae4f089bfb6b86ae619bf0bce109a22c17e9a28b76fcc60fab50e83cfd2513844053e73a6e451f8281a5aa049ff23e7f35b4991f2b39250d93e558933a4",
+ .ct = "",
+ .aad = "0a7bff7282e576d2970593872df935c1189ee8549f1c86e3cac73e8e190456f740e79087490cd8ff71ced03c05b4058f",
+ .tag = "ae25c635d207a56ada6487615b42f06b",
+ .fail = true,
+ ],
+ [
+ .count = 5,
+ .key = "e6ef6b22b8b48ce2cc1882dce2a00c60",
+ .iv = "12c0a7a5e0a2818d15df4f29629611212afc456da3ef017d856ab416dc9ddfc08ab9eb923cabe2d2b95be985ad965b6bc73f084961471da9624226493d394492300432d52375fa0e94bb3eace64e3eec4f217e1b68caa8186a4aba65858a72ddd5cc8e4f5ae456ffb2a88d4bff2b35b150b3b19547e2dd90a21fea62fa83b649",
+ .ct = "",
+ .aad = "15ff5ee09f299232dfbb299cb0480766cd530be83506ff5fa012ec99f4e6a98921272f545d1f932a5654c621d0a19f23",
+ .tag = "d847ca9aeffadac576adda82d6f16dd3",
+ .fail = true,
+ ],
+ [
+ .count = 6,
+ .key = "14d4c20ef0dfe2744281354569c7e36c",
+ .iv = "f3fa9a7fde6f63a6d1c02d21c3855a7f3daf52270586f674bead00e1d04e9aafb624fad0a9368e906c1dd9fb2d865642a86f8fa46ab14c39db1f150571f20f460e7ecda6dd5e133ed3d1e12e5cb9d3b0f9e8b74cd470df80bfe4ab7bac05a287955d3a115be971a4d678792a066fd2e00cd98093a67c04190f326669c2c9e791",
+ .ct = "",
+ .aad = "e52f7e802b0d4b97869a4f9a2ea6a2cf1a155fc1b31302dc7cb2ff2e000c90e85fdf842c822984af5b335371e48f53ea",
+ .tag = "5908d32bd0a5325b784ec67a4cd63143",
+ .fail = true,
+ ],
+ [
+ .count = 7,
+ .key = "46834d4dbe3ab70841c85ece1621d7fc",
+ .iv = "f7fa23f5cf5a49dea4a379552dfc40e76afe3ff59f8f184dc8215811a86bb41aae7a98ee7b0ce0105331511d884e35dcd7e2b244d3bbf71018646a042bcd09f5c4158e1d80ed4dc74222fdbcac03b39c40af644dcdd0bed37501f352e5cd33403bbc7c08a9b037f3a7ba703755392da5fd63adee3e6964a3a7d1760a2056a65b",
+ .ct = "",
+ .aad = "0a8c95aef3ae255bd7a5fe267ba459420aa6878b4c0fc87ead18dc092c0b0459790774dbb40564751363990a17f521d8",
+ .tag = "3569333184d124f264548a1b71bdb872",
+ .fail = true,
+ ],
+ [
+ .count = 8,
+ .key = "e5d2a58d0ceb7959f056f66693b98e8d",
+ .iv = "b99313ee6fd34fbbe11bd0a5a421eff79101de4cfc2802ae9de0152c65e999dac1a927e4841dcea24b7a9c06a5ae97c4236b728885999fcafdd10605cbdf81d2c437eeef6b5fb4cb07b1f698914980bce21a661b3a400a3db834ae8ca58056f4415ddfb6a6e8e479b8b2eaad0098a56f511029804fbf4d654ad34aa66e0fa870",
+ .ct = "",
+ .aad = "84e6ae9dd585bc6a227aaba1927f5472c5163b40fff8e62bff666cb2175d81be76a4741e88076ce200ec0b34ccc3d5f5",
+ .tag = "e152612d2388ee3901b78fa54169ce51",
+ .pt = "",
+ ],
+ [
+ .count = 9,
+ .key = "1212fd4e1f46efba5c5760a524b80179",
+ .iv = "16fbfa8ed7de603e9398c12ed1e33f2a06f76c10b48a54b432b36e78f8a450df95baac53f6b5492c994fda62585277b83f577ed6094a66b922947f7386c7d5d67ba777466efd2cd08526d04e6ef62001f1d1490e94617fc1cf7a6cb75d8462fcd39ecb8f3c374c321eeb32814ca09932bcae2933051e4301754c235beb34d144",
+ .ct = "",
+ .aad = "312d9dedf39d56896220121abb1c68de80f6e6d1dfa1b6b9d02a8a528b22680ed8b335d59d82eeb55f396c591084fb56",
+ .tag = "5630f09b66497557feb2c4362f5c7eb0",
+ .fail = true,
+ ],
+ [
+ .count = 10,
+ .key = "0a318aee2e2291f315f93b272f4a615a",
+ .iv = "b5dceb9dc8d8f244850f6380d1ceb1deb341354ae23bb7991df75563bf6c432f2ecf28d72c97043aacf6085bf781d2744b794a59a40e7268583e065162e0fc3d32db2c75db7f9febd737450eb6f9f479ee9cd273d28fa5dc261c7cf22d2d76ec50b6c48666a4f590d9eb145139fe815eee3479fde6e9959c4780f0b469939fb9",
+ .ct = "",
+ .aad = "e67d50b99a637816d9fdb8decea5a7a81ab708d54f61e624c116a30a80108d437ffeb3ff97174afe70d6eec72ed518c5",
+ .tag = "4fa6f8ee06d6ebcd4cd45336c4cb51fc",
+ .pt = "",
+ ],
+ [
+ .count = 11,
+ .key = "84b4784db00852a5bfdd7f70fc1f5f79",
+ .iv = "ffaebb9776b3c95d3511ea3b6a18e95da2ffe0ae9c8779d1eb9d410fb99078282fdd90df37a682f49806008c859483653ddee24343a45aa6ad43bbe5343649aade0f27d042f2294ff34f7a5ee17ac4557dfd2e0db55a51ccd48f117861fa03b8b43c17190a1e7a789e8ffacb3303bb67b684cceae599fa0685fe4953ccd16e53",
+ .ct = "",
+ .aad = "69bd68a60a77de51a870ce32e43e3f40ad016158c07df8d0ed629f9db18d5c4f694356bedafe65b405f792229147cee3",
+ .tag = "e35c337b6bf3800bc7e408fab0c84240",
+ .fail = true,
+ ],
+ [
+ .count = 12,
+ .key = "f8a249825332ee24f3deda54ae03ccee",
+ .iv = "b80b74c0f534e5aa30f29e5b0e520c9d2a1bfd9325f4403215e31ebd6aa95ee89d88cf9f38c91eaa18b5275370f8af14c3f1b53bec0d026a9812c749c3b4c0f16b30c050b678e588713480b8ff55614c87fb956d437ce426ca2651846fc03a6ae47e6e0883d07cf7e96a2980c24642957f6da98f2e77ec4f506d8e32576f8cfe",
+ .ct = "",
+ .aad = "6b53a72d47815d0f7266a24f2f4a94910b72080448169698d409cf80275623a6068e89ac33a6e9f96cf3dfbc1f9f75ad",
+ .tag = "b0d8603b1cc5ed7e4c1a3c7b786f2aa1",
+ .pt = "",
+ ],
+ [
+ .count = 13,
+ .key = "c6947b9e9db4bc884a57d18f8b3d1033",
+ .iv = "4e5c97b5b14e172e59b059e34569cb3c5aa92ca7609c03881f68a00db8897d5fcce48dddbfd98dde3c2d1f8a13ca89f95c87c9f749e68b0abc40e13b53ea3b553140ade8a646ff37619371e797b9f2019af0d6f08d37171e250989e3dfb66ae6488d0296aa6f59167b31f6d7af508c4d8de144ab330611ce3bca9258674494cf",
+ .ct = "",
+ .aad = "10407aa6be5eb7d12bade5ce5a64eee3a485fc4c0170bcc3a154c814c7ae53da79caac761e3a12f76a830ff7a225326c",
+ .tag = "39ad099e3b1a906afad26954a3e9ce12",
+ .fail = true,
+ ],
+ [
+ .count = 14,
+ .key = "1a28fb2cf4dfeb1b2994f6ceaffce678",
+ .iv = "a54581b854b7947528b9af9598f8c3516f61bd90b93dc72b703bdf6b04641786ed8cb7a69e55a2e83ab1bdda7f27c7d4bf6eb0dbe2fb1fe0e4c0c6590feef5ca975c0e9af2e2298a2e55b11d7d44c095e4913f6eee5fedc60e4382777f2f0ab92c5f3862e832e94f55d0198d5e832e53bdcfeb1355f034be760ae64c7490d2af",
+ .ct = "",
+ .aad = "ccd2d6c0808fd2c01be4e73447232f36bda52ec2d9d37b3c99031c98a46f06c42d3171d10556359e40e91474d2cad6b0",
+ .tag = "2666e038b32d3115a3578cd4cf257c93",
+ .fail = true,
+ ],
+ ][:]
+ ],
+ [
+ .name="aesgcm-dec-iv1024-pt0-aad720-tag128-key128",
+ .keylen=128,
+ .ivlen=1024,
+ .ptlen=0,
+ .aadlen=720,
+ .taglen=128,
+ .cases=[
+ [
+ .count = 0,
+ .key = "751bdbf1e0d207963ab8b786e02d19cf",
+ .iv = "26a7c80ad370ff7a851526c7924f7c1b03d165be182cd17c5a8c779b134d9974b82b95df3c54377cb11015a16940d52fa741aec80236302f22aade01f0913cfba2fc5c0ef19099e3f01a590dee02e797b01e90a6d9f906caac020148d2013f61cbe16ed049778a44ca343dbc188b0a57482fd070008bb825a8b9d66979a8ead5",
+ .ct = "",
+ .aad = "9f79b7cb90a13607f6b42c5d2a427fb1d6e14fe707ec9d6c5eb8efeb8a970bbe6bd4a0be70f6c17b9821d8c275fd4259843d1f6b23df0bbaf4b03f75e72d6326a81d4459e7ae97271fb5478944e2d507fb85f7006195d29ec03d",
+ .tag = "ad4467d419b918756b940dcecf4570fe",
+ .fail = true,
+ ],
+ [
+ .count = 1,
+ .key = "65eae4340e30a5799e047cca4b490336",
+ .iv = "8710f6e261af606afca727cf60cc3a9c55ac82329ff63427303c9a72b731b1bacfc05819b8ab905c56779065fb46f95943f1f09deb7aea30d18d663bbd79f67bf9964eee1c264dbfb97cd80da9169f04efbc60814d87eba3ca637d7658f12aeabd6ce8acbf36fb8eb4a13859051b7613a2672c3ba8ff486b90cedc86f2df73a9",
+ .ct = "",
+ .aad = "ff932fc948dd72b49bec6e539700dde1e600b2c256bdd714f0c26e9ec51456676297f828e31f75991ae174860e8ab33a082299272fd666458f4ef451594e1b9c1e4063bb0e3278eee09562621b425d4253dc207b766e71fac188",
+ .tag = "82ccd60156286c311bf97e7dcd5ed978",
+ .fail = true,
+ ],
+ [
+ .count = 2,
+ .key = "42c6e06f7f07c793864f6033f9022a41",
+ .iv = "bd1258f14570dc663f81c31916bcb45490a7df15c95d827fd9e36aaf12f8fc51b8c0bc823faf1cccf9e6d6d3b132e874993325a1a2b1b61f9dacbb4a458de8d25dbf0ba4282d64a06686ddd0f099300b98e91362ffbeb44ebd22ad3c92ee06b230e234f85363642f57d0154aee09ff08d0e560b5728a5db8a18b26438177c45f",
+ .ct = "",
+ .aad = "ef675d5e33198af58e72d7f379dd35bd7234aa7a52ae28531ee2e77d6bf30f05c507b8cc72361f11e70017b30c0e374dd283d29c324c67d43d92868485b0ac2cc4e0dfef362df74c927f935d630611fa26c5be9bea49291d3875",
+ .tag = "6640b62190bb4a11d4c7b37039bba6fb",
+ .pt = "",
+ ],
+ [
+ .count = 3,
+ .key = "2956932076724a0a374b21fdb6dfa8db",
+ .iv = "d42d5e9516d7bed3525dd1cf30ef7d485d5cef0ecf8c84d36415455a150a071f41569e0ed9ba6c95e26666c3e90c821d557d392ca08d47ddefe5cb82283c65b9a312edfebd315669190089a4b9c9d519cb7f2b137e15e0ffe16ac4c1a41e6d21ddac24719582e6bb974afe0b2420732b94ac5f3bbff737b54417c19d74816cc6",
+ .ct = "",
+ .aad = "4368cea5063f57ada5e4628b3787f71803dfa431d5904191877452066c3da490befecda244470b1425401f9399fa65fdd4b27f4d456d695fc31fdc72f88a472d943816f5d6869aaefc00e142a9107a12626692d16de70bd66bef",
+ .tag = "b976c9f8c94d0683d51a340dde2dbd9c",
+ .fail = true,
+ ],
+ [
+ .count = 4,
+ .key = "68c9b3cedc762f42124e37bb42faa7e3",
+ .iv = "e02ca355c17a47360767357e05f03ff2cc4de38f046a55d007885dad53474761601d5ba20dad55573ea354ae5d3adadd5859b6c55ca651730139da1ad3aaa58ed17d7e48dec91ff62223c0c792b56c657e352c6cca4f8ee93f58b4c3e4db40528fea0bcedb5f94fca9e4c815c0798c8b2472fe1bd55aeeaa6162ed35ffbb4d9f",
+ .ct = "",
+ .aad = "659cb7d921fbab10817f95f874f2fcaf09b7e6cf3f0e8bb3849782eba83551d6e93a95ca15b068a9eb223d13a60bd63d124a1e775aece057ca0ef22b6cf6d2d59eb675f29bd8edf5ff06f9d7d8e1704c0ac0a13eed104af009f4",
+ .tag = "29f8432084408a53611b4472105f15ed",
+ .pt = "",
+ ],
+ [
+ .count = 5,
+ .key = "1a25f694e398ec5259b94fc678cfa29e",
+ .iv = "8ad0d5defe12851c3881012f86741b020357801d54feb5a1242af106a2aff82de9754779a57124a0e9599e9a1b8fc92f4fbd058f7591873bec4aadde9cfdd588cb6dd332944f69bd232212c8687337b43f73b6e2222f469bf14bfd993b058f76a1773a868592c9b3fd8e03cac585907b71f77f20773ed8eec1d531f73c07aa07",
+ .ct = "",
+ .aad = "0851985e1d5e3787cd1749c00dbb20e940c2a99a00539351ecc5961bad8f5b1db9a28ba1f4e547c028c0848d5bfcf87d915939314bb031707e3dd552b8a019994224cb4cd2df1a8648a21ec02db9dc88b4011fe46b0834ce53e3",
+ .tag = "fe727c466b9f45b08879680aa0c87ad3",
+ .fail = true,
+ ],
+ [
+ .count = 6,
+ .key = "4bc196c2b29af712c58f653353930045",
+ .iv = "5bd8129845e3dbcfa0c67ccbcdb3d6e6949b3d5ba7b09cb8f32fba18511dd901191f4f40da107524c5090b686af86038af881bbbcfb57c140ebc95226b3d16f8148aa3431704ca3171f96485e67eef956afb64d9cb61348abf9e624a120fdd17f863ebdc15716d1b089ba37af0c14429ce02a16f923068befbe07f6b843e54cb",
+ .ct = "",
+ .aad = "42a64e17d778ed072175975cd89a2654d1b4dc01a3b854851af5d6db29dd744afedce2a44efd101a17a628a6caaf0fe48edd697e07c51cbad8865290095a0eb4cebe41b83747f9a3359e11ed77d692d474110293bc898d002eb8",
+ .tag = "14f61549303e933f41e67864e7ce2821",
+ .fail = true,
+ ],
+ [
+ .count = 7,
+ .key = "29741105f85ac04da73e9ea66d22dc00",
+ .iv = "96f044ddff2b5b92ea9c8cec6aa95cf137ef26e8c4f0e2c185fca40dd9c99be6317911e882787ea9e34e42ece0149e4fc267fbf7511d22d76fb1972d333f521d38d85e64702b1f187d55906d6d1ba23c7267ecc77ddf21bf2f2a10fb19de17590948052d891a9b6f765781897519b5bdef9723f880a50dbca92dbc8ea4776ed0",
+ .ct = "",
+ .aad = "b77d48ff0d5ca71e7a52b1f1bd7dda20a857c0ce82b87ecc412665a68f8f0586ffffed6da62b1aa64c5b86dbd92959f524cb9253f63eedc40ce9b55627da24aaf1314da30e3a60626641db296a0b20a1d3d3839892354063a80a",
+ .tag = "767c2b03d0827bd288b548d0de4a74ef",
+ .fail = true,
+ ],
+ [
+ .count = 8,
+ .key = "31ce6e3512ccd875c7b606fbc3f1656f",
+ .iv = "544ccbdec6a4d451401a9ff2439ea6617ba819101bf86dd0840426d3e0a933f6ce97c41d579776340cff02a44e7d4fa3d01d3ea48efa080b1576cba70ac9733343c7b3a5247750daea3f1563a13d869a445c7a4d0725a42a3530bbaab28c31ad921bbb1d24441cf31907f2cba2bb558f9613333a1379516bd7b4581964fb2163",
+ .ct = "",
+ .aad = "9d0da233dbd5ea7f158170625484047cda223510bc5b3ab4b8d7a23d683b4e5a09785424bbce3a99b209d1b3f80aff09fde23cf201ae9a3f339804a4f8a2fbce662b22751214c2aca3d8a36eb0380903ef7d76c5d0f1a9af00c0",
+ .tag = "e7822d50a2f43f91f2a4de8285fd2c79",
+ .pt = "",
+ ],
+ [
+ .count = 9,
+ .key = "e4d5cbc0cba73ab3130b281994e34030",
+ .iv = "22883a4ba3adcc1a944e91d18176bf4f79a6098c704c5061fc103153dc5609747b6a44cc7273fcd9cc6f5f9ebbe6163391319135be59076e3b7f6d008b840a3f85572479fbe1a0fdcbe9b309824846d480d6498fd13510883acfe532e0711dfa701caedf37e06b2da60c454e68584b10122bf4b122cc1e4a951e2d964fc49a6b",
+ .ct = "",
+ .aad = "f114b47101dcb30dd67312343dfbb7a41bbcb6c608c942891bec5c493a37cf93cde67c317af462d33a1347c8343d56e8c33cdeac230167f558de939bce091b5f084935e1532a176003ba83b225a9a7ab9a2ccf346cc86026a536",
+ .tag = "db0ecde62baa418b91c611bc29a9758a",
+ .pt = "",
+ ],
+ [
+ .count = 10,
+ .key = "ce60f3a615eaa4c522ef0625852abe00",
+ .iv = "89c9edd1dd8f4498eebb3ce30f3bf87c731c4d65e07997f839302b3a0be9d3d4dbe6f02ddc27601e2cdda6f7c1054156ca4901a0861f0e1e4ea2bac5ceec2b009208600ee5141aceacd5d7d1ef499751ea1d239ce2bee90baacd7dbbcf57d975536cbf0dd0cefa310cda9aaf75d9c79ceb05a2e44d7904f229c1de4c94360aed",
+ .ct = "",
+ .aad = "5374f57d4e4dea0bf0a724a042e01b4c7b45bf5c76a30e3ad84973f81cb89f9e4e636530809f8a942fb08619aeee67beb126f5867a23282f12ad460817c645577b7d4f1935bee0fa7f77007f51f9978b4c09ee06e15f72c8ec3f",
+ .tag = "acb6ee05891ac13a568b2a505eb29d8f",
+ .fail = true,
+ ],
+ [
+ .count = 11,
+ .key = "14613915b33b48195c5db4158cea29d6",
+ .iv = "7e3d9b279d456ccd06244aa2abab57c995797298de64eb03d810ca42f09b0d248e1e549c4ff7e090f3d71093e59db96fa5632f24b9c28afe6fccbd878313d224a6133334dd3b9c66146c6eadc0b09a5aca364dc22d85210407ab8e416e8887588cfdfc9b1c34e573dc2ed13f0a88e518d09b3f8df16c297591e77a2b7da463d5",
+ .ct = "",
+ .aad = "d8dcdba6858e07c69a1ce63562f018d12c594f53e8c45866baf15642299ed775ee5e395ec870c03ea26f8a0e7020b5cfc06e49ba5e4c0e2b78239efead62a3ef5809a1f9225687546009fd3f824829a376d89376667dac07a5a0",
+ .tag = "b8147b5e5be3e0baf16359d994bf9775",
+ .pt = "",
+ ],
+ [
+ .count = 12,
+ .key = "a628c8d2214470aac0358ed0297bb1c8",
+ .iv = "4b63a46f08c8b25004e5f0b91187d4010505032e97706d7549b8fd10144f30c4d32bd922ece4bcfaf8f16d20134d006f197eabb7f57c27c52b022c9b8be5a387c30443b4f18c38b9587ba08b05a766a7b62b685819ac8ab1790aa4d7fe3c9c584dd329b33b68e39619bda22a211c6dddd7b67b6c6d9e9877a6adf5afd8e62381",
+ .ct = "",
+ .aad = "2caeaf092b34b6eee48eac744b09296e124328b562006827e844a5bf6a9fbed3d5967246032a4fd6ef4551d1cc197ecf2cfd1ae91f7e2c8e580217e609a5ce2a20d4dfd349e7b1010d12111133fd338055940e9efd38763e0297",
+ .tag = "d1a5ef9bb16138d4413853e4e3f99e21",
+ .pt = "",
+ ],
+ [
+ .count = 13,
+ .key = "002181f9654a8ada105ca73e7d976d5c",
+ .iv = "581427f6dec4ba6da0ef85908636f0a41933ec4f41111ad8d5479126c70dcf2806b2c335d9be5d67220b41378accfe378e1b6348fc638318333643eb507bd67b176d968d46037bafcd01d4e01843c6f47825edba35ba49e81a3b3cb47261ede2f3c936ec2dfb6a92e91999b956d9f7343a7e77b837a1c8759a81493772409a38",
+ .ct = "",
+ .aad = "a21340030c88a5352534b222b78970c0b6411b7805ce23a950509bf2d1f0cec94c8f6074c69fe7872fbcf58df45ca31db504dbc770ba0ee83f84aeca711d0ef5ecba369c39e44d8971ae59ac0571c3c9db629a8fec2a07af91b8",
+ .tag = "8b94cedd377ed28742d47979f72c1631",
+ .fail = true,
+ ],
+ [
+ .count = 14,
+ .key = "8d7c1f0a6ed8d1b07120c48cc50932c0",
+ .iv = "5057e68798f0fc36ecb8a556b09af60400f5ff24c6d57292e7411c1d92a9f9bf95a0fc1ab80e7b6ed7e0df8f3b96f2bbd575120d8131ead626683276c229ab3e0dc96beddbee88c49bdc949113cfd1d4d05b94b72f6c168daff4bfda551e80a92ec9509a812ef899ba0a622d0798ba4fbb2379f8916a1a7c7bbe883f372f4b80",
+ .ct = "",
+ .aad = "8acbd66514de509e7f08fe1df77b567bd982cddb6f45d480a306bf493e0ba0f65634a385ec239b11786a73b7bf7bcd0f253582df3658e60758f35974a134589efc818de5633b7bf1014759c5bf88f376f1365fa29f824487ab8d",
+ .tag = "540ee0499d75c7eeed61efd98e6ca440",
+ .fail = true,
+ ],
+ ][:]
+ ],
+ [
+ .name="aesgcm-dec-iv1024-pt128-aad0-tag128-key128",
+ .keylen=128,
+ .ivlen=1024,
+ .ptlen=128,
+ .aadlen=0,
+ .taglen=128,
+ .cases=[
+ [
+ .count = 0,
+ .key = "cf8609cdd35a1bf0edaf47c178338ed4",
+ .iv = "93a3353e94d04e5c2639a2f558315ce10bafcf2c512618f4f8c45b9f417fdb895f6c2c1ab646f2a124b7146a87c23ca1e5e5cf0b34ce4c5ed956e6933f9257f5d362a7155795c537bbe7436a639a0f6c797304519bfb47ec6f92953a6415ffc4d400cd4f226b4944c79c2c217fc5a140a3cdafd04dfc3e35a305e44984e73af0",
+ .ct = "d5b9782539df8e6d428e672cc33ec0b8",
+ .aad = "",
+ .tag = "9fa845455f16cf49e05dd86cc7dfcf1e",
+ .pt = "a31cd7e8875b86d341e69834cbc31cc4",
+ ],
+ [
+ .count = 1,
+ .key = "22e428e942c98a1c4c890abda53b10a4",
+ .iv = "10a8dd95ea3edd323b3b87b178476164b4ff80a64d626ac4a41b9d41d89bfd1115a07de81ac8f85148ab1eae55403a2a442dc4ed22ea243aa21ff531622ae5bd5eadc1a735460c1479b3207d764d1dd05402190a2779d915f9448ec345f1c05190597ccdc089c8628efdf044fab549e5f52ac80c09693d169c16980037dea084",
+ .ct = "5cf3131fe70ced5e238bfea1a7c1f08c",
+ .aad = "",
+ .tag = "38f3d6f698a930c93e3f8ff71b778c8e",
+ .fail = true,
+ ],
+ [
+ .count = 2,
+ .key = "e37d5de43636d6ce94a8f11dfbc14c65",
+ .iv = "eef3e8904d02e41fbb21c6f8ea2f141d0c84475ddc9d2ffc4e02bfc11715009fc704ecf8775a1c6d4b08bc1ab2f93a9556b40d379b7f48fff3034dbf00e02ce82f219e44e48c86532ba2de802fc8f718cdd37e4e0ab6b94a82107465f83da17aa4f477ec0563e3bd465c64d95f79f25a432466e5827ca84fd72c2638641ff07e",
+ .ct = "b979208bae755b83c87579794c2a2bf6",
+ .aad = "",
+ .tag = "a15b8080ff54f597372f899edcf8e9ac",
+ .pt = "ac2106b24c3d266d77d35f21b751cb74",
+ ],
+ [
+ .count = 3,
+ .key = "90ff246beb0baf3f82ed24419672882f",
+ .iv = "bc9364c025d8a1aa9b0f9c99e5fde3bbee5a1029f243d02bc764fa3479c375875a24ce5a96f920c8471396a27859b7abfe7e68e3a86eee49fed389853b6913c7e7be5647af1fb750a10c318492ed0b39a00ff14d5e8d01cc300637c5cebd743c4f442885dff9606cac617c126ca4560b07ce4ae3c6d77267708ef49bb77294e2",
+ .ct = "e7fc4e0b423d053aba78af3437a6feac",
+ .aad = "",
+ .tag = "9febd58d7dd93159f8fa9a1de6c73e65",
+ .pt = "1c29c77e883ed97e582fd2e847d412c1",
+ ],
+ [
+ .count = 4,
+ .key = "cbb2ddfecfb08143323b185e3c7982eb",
+ .iv = "8d937d51a73836af2be2370a7f74b7a4e5cda7d8896837e314b3bc7d27bcf3ebb36fcffb5d3414e40fee2b01f8d41d9785855017c46e31bec3f40929da91588617b815ff573f4fba3ebc246bff975ded2607467222a80cfca3350c0119eef91b404d8d0fcfbac1dbdc004e75e6290bd71e6b04f673a1a30f85987b94f0984653",
+ .ct = "fce12435107314552ab65aa77a6b1a1c",
+ .aad = "",
+ .tag = "1abc4c1283e6296e2e7a4d9f8e422a6b",
+ .pt = "38c77b177f7209eafe0d99d0aecf2db5",
+ ],
+ [
+ .count = 5,
+ .key = "d92fb158f208c4f7bfaec0c18c904172",
+ .iv = "e0bfaccc565ec964d44d3a32d51aec0e598413ec0466860a253fb7dbc9942d27c1e4fa0d4c41970adb4638aece2bdf248940bb135b626fc5971abd8b7c07b19ed3db9cf8ac4514b1bfe5ff6495cc335943bc2bffb11abc45645699386cc7865a703ad36214f866a1ec2bd4e37cd5a0497c586fa522178ac8cbc3b45ca88a5265",
+ .ct = "c84958084a005cb327acc99e737af653",
+ .aad = "",
+ .tag = "5fe032c4aa9e050b7c3f79f5745648ec",
+ .pt = "789377cac3c39c3e2f2aa44378ec4e06",
+ ],
+ [
+ .count = 6,
+ .key = "d86f4eff72e9236df788ac31a8846339",
+ .iv = "70a16ed3ecf50b1604ec155ae53b17695878b07f75eaf26d9fba847f0e1ab3f3650f58a41efcb3fa6cd16c0c1c456a483a854134be6dc0156c540528222697945e2e78e68378d6737fb92ccf012788999526aaf15035fc7864150dbf29c2a717ebf594a1d8fabb3df410aea6c1edac7208f947db6a58dbe4ed4abf1d2714d817",
+ .ct = "6828835346bdef29ec9ee0c13bbaa309",
+ .aad = "",
+ .tag = "419bdaeff567efc4a20143822e82043f",
+ .fail = true,
+ ],
+ [
+ .count = 7,
+ .key = "1fbe4e8a97f0591a784cb560f679625e",
+ .iv = "807cfa8e0814ff78975a0a7e6b8e75e52e124fa2ea47be3b60a87564385f183774b7ee141fc05365552cacc7b80c6da7c02d4417acd87bbb3980a06fbd52d00ebe990430923a04e489a52f3dcc8d33de75b5c7d9e2b43eafa66f5917bec1486ea8dfb3e9df2f3df7942abada1c2875f7e55a0c07b7af82cd02a0b6e50325444f",
+ .ct = "a66678be0bf35b136a187fef23a9e925",
+ .aad = "",
+ .tag = "19534f0ef2bdbfbfd80bc31e6cb78189",
+ .pt = "4238bb7a1c56b2f61dff5c198a971b13",
+ ],
+ [
+ .count = 8,
+ .key = "77398d4228ec4036708a4e1bfc369b72",
+ .iv = "7ac3e923fa5714c2bda689cdf73d020397e321bfa5ce628042a8331c5933e5b0642ea566050bd51f5145b46f04d3b10d171a4db1658912d6c849741baa5c6ca4421d6a75c8c6db61bedfe36bd6112141648e2805f09525adcad5025c99f2a8ec89bda84ef12d303aa8ef37ee2332b5b9764f2fe11a4c46a8afdf798610b2d3d1",
+ .ct = "e2590e34554524cb73f34f2019b9c827",
+ .aad = "",
+ .tag = "025d496fd151d5dcd07bdd3e8eeaa5d5",
+ .fail = true,
+ ],
+ [
+ .count = 9,
+ .key = "2a3054b1a67af9ef62e9289be4eccdab",
+ .iv = "fe148fd6ded81e556b59a6d9c7113a7dfc7068d55e9b5ea2e6d24cf9f31c2df3781cb5c03120919c99b987f3bca792ae0497c2ddf7703fd8440421fbfe70be366b7ecd22d1aaf1376d96d7a0541802e3625580dbcabcb23b50e9033f8b78802f715a95e465439f61a0295e4f17392213f12e3e7191447c0b195b78332976d93a",
+ .ct = "e9f4b84330b887a0a3c4cf10b40aa116",
+ .aad = "",
+ .tag = "b135081c8e928a3836efe83b3e222ed4",
+ .fail = true,
+ ],
+ [
+ .count = 10,
+ .key = "364299021d8604e2e8761e24771e4b2e",
+ .iv = "49b4eb8f3df3152aaca22e1fc6f0e7a74a78ffad2bd8564364717ce6a90242123c1fc8e2e0ce083787c0288d29cc1b0fcbddd6ed287d93d937790759c3971a109df2fc77e60f947a92a8e9f1a4ea2f6aa6799a97d5c91d56d6fbdef526affd3bf2b259da6e988a9daabe33e983c0edd3d7042f3439c04c20a6103c94ccd52703",
+ .ct = "77c44cbcebdcacf1246650bfd46bf453",
+ .aad = "",
+ .tag = "8bd29b87fc271ad429d9b26ecb9cbe5b",
+ .fail = true,
+ ],
+ [
+ .count = 11,
+ .key = "c66771391a236df97e1077e193a8ac1f",
+ .iv = "9b82e5b9cc64c4f7c64495204dc0a693cd247b496f8535615caea63750957a09bdab0eae5bcdaaa1250b4bd581636a6b20df3ff15741b0b03e37b1e27d70e46ba35ea3548709f0097a157680d7782b17677d03a07d72ef8fcd2deffa5c817649c03383e9a475eeca5a47e753f2c63fdb75bdd8446928572a86c5b03520bcef7e",
+ .ct = "ae17d661fedc6c4b06322258b2ef215d",
+ .aad = "",
+ .tag = "547da22169368ef6c063248edf6ece8f",
+ .fail = true,
+ ],
+ [
+ .count = 12,
+ .key = "42e71ca41c17334a1ed1665615d84818",
+ .iv = "b97211e0f6c139a285ad130eaf1f84074faca95644ca01fad99ea1b947e9f77ed794d139c188284cdbb50d37594ed5b9bb30d1f4e1e2972aeaf6931b0dd24e14fef04ab1498341aa6fa22789acccdd012235458dcfd112ec790fb436f5f61618fd5a98844a64df81188cae275a5419442884c7b2561674156e59e1be5a0848f2",
+ .ct = "09bdb73f0e968e1a42736e366b602fcb",
+ .aad = "",
+ .tag = "60e8be6cbf67d0cd851361cd523bfecc",
+ .pt = "1515db95297d1ec0f2c84203e1ddb823",
+ ],
+ [
+ .count = 13,
+ .key = "b67e6bfe3da5467c86bd31f911b22506",
+ .iv = "f6c4fa3396a863924f7417bcbdd4aaad9c8eb05ee12d7b924b7c0445f27af026feea6bde4feac0b407c335ff8a609c563495822c139739d6e13c39c1c5f80002048d27bdc56a45d30d31c8264c2cbffbe107ff05aef99ba26684899ce61f8566c2402f5022e09ce3dba7df896407488254fb896ef5be8649382fc20548eae641",
+ .ct = "1cb3228e0c409ec89609b0fe1fe12cad",
+ .aad = "",
+ .tag = "d1f5c6829335c6f1d67786bb44fe08e9",
+ .pt = "b79358f0a78475811bf70d2006597815",
+ ],
+ [
+ .count = 14,
+ .key = "549ff8eb36e28b251d6684a2af3b8ad5",
+ .iv = "4be6644d05e8bee1038410ec0f68d49770326eb05e2fcd237426dd68a9585378d4139c53cd48c7152d1038ae614642f4eecd6c348d9d9bc7c8ab81e2c3b6415140e0213cb58b638bc1731e9b07b58d10f56635c7e6ae6cb4750cab1fe97ef0de25a2b6ddc0591e80facbffbfcfc399a81be8e21ba6deda98503a7f4a662fe108",
+ .ct = "3b936ce678df1c3f36cb78a1675df0c8",
+ .aad = "",
+ .tag = "24edfa5ff7adcea22e1a3deb4c661f8f",
+ .fail = true,
+ ],
+ ][:]
+ ],
+ [
+ .name="aesgcm-dec-iv1024-pt128-aad128-tag128-key128",
+ .keylen=128,
+ .ivlen=1024,
+ .ptlen=128,
+ .aadlen=128,
+ .taglen=128,
+ .cases=[
+ [
+ .count = 0,
+ .key = "c647ba4d71588fc65603ee865950b38b",
+ .iv = "820c99e61c99377a6c81f38de718fc0d8f5387c2e3a7ced2317efd116da45d773bdcab0b8804079a7ae539a2051e6d5117b9d75ba6f97d464ba17ba78ac0843f0c2360d0111c49de4229e55a0657a7a0fb3622d3a1a1f76842e611ef294e1cc055d2aa380092f9780de1fccd30b438075bb09beb1cc792f3f2dee58192be8f06",
+ .ct = "c5546a192fb7bea5ef7d79dda4743c72",
+ .aad = "f04f6cd6c9dc78d2059078d78b1111dc",
+ .tag = "247d1d31fbd70b469123940031747784",
+ .fail = true,
+ ],
+ [
+ .count = 1,
+ .key = "bc30eb76f5b063fdf1c4f9bb0bd38deb",
+ .iv = "a8a578769a68b6525b5f969748b4f58fd213f375402b2f0c43f6b00f0fc598853fca52ec8f8b7ea73763f7e4c1a40741ea3d3464545416c9dd4f71755b05b154eef788ec37e2ca76fa8418841503db08763d3d04a12d7e85c3abc099729c84cb94aeac88c3e432cb8675683edf023edd707aca385bfb55d5ccc4840cbac6f12e",
+ .ct = "1810958e6ffb802ac40fe5b471a7c85a",
+ .aad = "e6049b4c3d1c5321c1887b1040030143",
+ .tag = "d895463b97c687c621f03c31406a0305",
+ .pt = "aedecddda15d1c84da2968ba351b5e5e",
+ ],
+ [
+ .count = 2,
+ .key = "29ec7b5f1c29b76cd27ff7a618438cf9",
+ .iv = "534cbce8bbba6c7028ee2d69704dfe1e99d4eeb80461beb3b7d41d1fd211aa82c376cca782c058460b07d3a47b450c756f85b32d803e528192839c723dadaecde566425257ff6670e6d946eb1c2c2f86cfccdb60186e92c5d751b1afe4be14443dcdb9ceaffb2bd0894d67490d0378b8cc30b45ea754a6bc124d2bd2c1ac01f2",
+ .ct = "eee86fa04ca7fad64e1eafa4b4862fa5",
+ .aad = "61eec5e47ae5a74a45ad6023db4c3e4a",
+ .tag = "ba5820d4afa8a0032a113697149ac40b",
+ .pt = "57967d50c1bf42602b03e04a8a04b617",
+ ],
+ [
+ .count = 3,
+ .key = "d4b907016f18a4c968dbfe257f7e2c97",
+ .iv = "37fbefefd07e50c3496e8ecdbdea5d2d79273f60c2fd1269dd9d29ee440f08a7acf65e7ba0c99e6bd40b4c62272653dbc8ee140668ebafb39d5b3795825727ca1ac3b21b79cbd23696d9d07561005384b72f2256e8b9a8b3f80c2a4f52495c64f756fde6babfff7d892970db3312cf48e74193993a394ddb8370e5227c2eaca8",
+ .ct = "c8f289ff2c457c2b94809f5572dd40dd",
+ .aad = "da2245e7a17f26e558e4aa656970b33b",
+ .tag = "8b5185c11db9f38162111252ae0a08d4",
+ .fail = true,
+ ],
+ [
+ .count = 4,
+ .key = "3904998562645f13f2c0fb9010d66e7f",
+ .iv = "a1f4f9e2df3c21e13b679dcb1900401e98ef9b663e0550a44eca5a32e6836602497c61b7c739379e4b7571f416223089e80db4c9f20c0cbe0825e27293b11556f463e271546dc7f0e35d626919f49b50adab0fc0e02805eb2d4e47edd6a7b002f0b7faeeaca7584e9760edfff32fe330c85a6bff8f5be8b6a3aa40364b4b782f",
+ .ct = "dad403ff36f4c7858b75c1f489d25549",
+ .aad = "8502d01b0f2ea10a64a9abb507787f59",
+ .tag = "15d3eb7ca8c20f71504273bc534e1bf3",
+ .pt = "b243ed8e1c8e5a5a12c5e670457bb4e5",
+ ],
+ [
+ .count = 5,
+ .key = "1c2463d75cb1708f47c036e0745e2833",
+ .iv = "309fc0058588e953961f6756e7d9679187df0f600d0c8e4d30a5b5b540b25fa97115d1c9b1293255efab4874d98101075c7c707b8d410a44869b53149683808942b5b597ede63e809fc7eadc4f6bdabf69d2fe547fb979e22aea6269334ef6c71533dff0e37f4ac6c56c000cef2f2568c28dd0fc9e1bba87ccc3ebb75214c82f",
+ .ct = "ae24014200d773dad8bfd4cee073067f",
+ .aad = "5fa1c4908660485f1c403e1e31e3fae9",
+ .tag = "efbf7c68b518bfb56ad8520b3f97e99f",
+ .fail = true,
+ ],
+ [
+ .count = 6,
+ .key = "42fe71681e818d921fb27b3439ce6ea5",
+ .iv = "81bfb8acebdbfdcf27f4a380a8e0011537eab29cadb4033dfb0eaa9243be8608b029bca30e298574b38a1a2afbb09f12bb98295cbaa10dcaa24d2518307a7bba3b90178cab81093d1c34d15b48c1015c43db926893eb9db1e5541fca0ca36cf572e415023efbd4fabc1627a45203d4f89f17b805c0fb903862fd7d8e00487ea6",
+ .ct = "afa0a74f821ff6d3c15230861b80faa8",
+ .aad = "e5c3f1036a913da56f11570b044a0a21",
+ .tag = "f9303a54e756f134bf39d006e199c8fc",
+ .fail = true,
+ ],
+ [
+ .count = 7,
+ .key = "a1ce6b0018f4b0f41b97159b12d78070",
+ .iv = "cb925f906f81b516da1161c64b2142f3210cabf9443cbdeb8815dd4cdd912e216603901158328f7331b056db5e08c8c044eef94553bd26851942fb6007a25883d9b70642559f57dfb4b735fe6df559f663115fb5b5f24321254442ef4132202ef5d3250a6b7e81e0007b7e1b8f0d6c8350e9d6c8ed5631fe92468029bd34fa83",
+ .ct = "b0816d1b6a3b9b91dc8d76f795ee9a74",
+ .aad = "4fa256958b198378fcb49097a56d4cd9",
+ .tag = "f410fb2d6b34be90152085e2fbf654ec",
+ .fail = true,
+ ],
+ [
+ .count = 8,
+ .key = "12fe7dc72949c5175db64c0bf92944c7",
+ .iv = "8a9ebcb4ea47249a87dc2751aaa0114ba44441be49815cc05a2d42925f356e1e34ae5b30092d3cd1af79153872c6ad8e64f1d2241037fe18758ea696fa52e33ceabf4f4f6f4a77f32c4c3fd36fdd692d597978684feb0fc66d19d00906c6c6835fe6c4b8d4573c0eece4f1de85e0f5ae105485f6b2db4c821980a28d41f2f155",
+ .ct = "dd192ba4d1d9967fb9d8fd559307b1de",
+ .aad = "a62d96ac6b4acdae784e4748cfe837fc",
+ .tag = "4528b211ba29af8f06d4d1388fbc549a",
+ .pt = "498255c2c186a7792dfd1a613c0b434d",
+ ],
+ [
+ .count = 9,
+ .key = "cfcc6fde2af417f0bc1aa0b43c9b2d86",
+ .iv = "08263878091b144db40e8cf2e75b086538dc695931526993d302650891d137b09e671a23692fe5c1870c664675929f903fe3328ec92fe48e86b730a532b35397d70198bffd4eb5c333e58af85732e03461287387e603d7b7fdf01a40b95865c90b19f92c826ff7d607a22a5df5ee9b20e01960b45c50ecb8063f2a46e2838783",
+ .ct = "0cb033709326815af929d04deaa1defb",
+ .aad = "8ed93987f9d3786db3dce77a7331e85c",
+ .tag = "4a883593ae4fd757bc14c5821f4eb1a2",
+ .pt = "24878e4fb3878f1f342f39d83ee347ce",
+ ],
+ [
+ .count = 10,
+ .key = "e8c21706de65599818e24e12a88ecb74",
+ .iv = "0b84c9feaf622a669f5d09a19353b5505fc71fce0d1dd414c89a688a218f0e7f86dba244600a2cf86c772ae48aff03bb2e38f9cbb6359efc90a7a47e20508326f18c07dd2958c4ae4582a6bc868209ebaf96d42bf84c5c90a45973a8d817618c202ffdba7e6601b82f206d8abbd9fff8142e781b044c0279bd41f03e4af453c5",
+ .ct = "af72819475315372c121dda68bcbc0db",
+ .aad = "1f3393d779680d93f8289314d20bf728",
+ .tag = "1e36bfd177fb13891f4539124f43880e",
+ .fail = true,
+ ],
+ [
+ .count = 11,
+ .key = "752f22ae8df3ce473777a7d7c3b5d799",
+ .iv = "d28467b4158a5481f6e3f949aa1e0ea1bd2b39ed5578a2570b25878c4fdc03cf891609537108f8fc943d027ec16b2d274c6d3d7d81beb57e65123cd64a46d72ce996cf5cdf026665301fd2335d3e024607e70d687c83a19df895fc13f0ea696c658c94c8e2232336e2cb1e411626f440b5e3acfdaadc1bff3ea7299c990fb99f",
+ .ct = "b2baa7115d528b2cda9b9e577524edca",
+ .aad = "732e6ba2f2d76dd2bc10d3d931e07537",
+ .tag = "48e2b8b3b2a424bbd243a33ec0e36e5c",
+ .fail = true,
+ ],
+ [
+ .count = 12,
+ .key = "5dec2c4b6ba3461dd9172b95ab9f9651",
+ .iv = "ecdfb22cc1d3748e886e5a2b68f0a76d3a51d3f5f3382374d85d06143ba023425a4bf61441f5c5b3c51d3968992691abe8c232893c86e9fc8cbb97d23351ad4e2b66c3abf959a974dbdffdccd988a76e77f4c9897260e01ed0de48c75b6a8739665004cfde3580c6a763a735876814db4992ec2ffd9b7fc0e165fef4c88deb23",
+ .ct = "4edb3f46688003e4f08626125fd4d5c7",
+ .aad = "8dcbeaa679c4040bef1d36ed2ea3b86d",
+ .tag = "693f3ccfc628efaf1caaa463b013bedf",
+ .fail = true,
+ ],
+ [
+ .count = 13,
+ .key = "9154aa4446878fbb50466edab20490f0",
+ .iv = "4b47c8fd7596eb59e609325deb107ca9ee9be6a8d519a064ace733d6bb154a358a597ebae79568fe62a197562d68206008a889a646aa9e9826802d007112badc955e06f87ee022b61b7f4dc7aa9f66334f7e3abc98392051f4f74d4ab38c3fefd2de73b6c040ccd9751b1e463e9f3753177a23dc07e35a7f027b61cc9807196b",
+ .ct = "f6c3f00381d42d3be2de32332da3231c",
+ .aad = "de1e5824ef43f670cad160c4caf5e926",
+ .tag = "42898452b58c694a87b63d482b4fe0c9",
+ .fail = true,
+ ],
+ [
+ .count = 14,
+ .key = "260d54cbf5ffd12cde2ca2d75bcdecb4",
+ .iv = "72bafef247db6eb7318e5b0ed6d0aae2a64ef3357aa184c2d2e553c784f1753ba4d1c6e2437271d4b3e9b770e1d22891dc3b5bfbf3a32bab15942511d87497e86f4f606f26c6b5811a37117457e715adde4f830216028d0e62f780fa51da741f85c0af91d3135d0c8762e35ab3e306f8136d774480aa7b4e26f462d6d484efbc",
+ .ct = "8c436c155663545c358e7160163e64e3",
+ .aad = "bd81cabbb4ebfbf88bf200620556da41",
+ .tag = "e0689913eeb973c8b95bdf8bac314831",
+ .fail = true,
+ ],
+ ][:]
+ ],
+ [
+ .name="aesgcm-dec-iv1024-pt128-aad160-tag128-key128",
+ .keylen=128,
+ .ivlen=1024,
+ .ptlen=128,
+ .aadlen=160,
+ .taglen=128,
+ .cases=[
+ [
+ .count = 0,
+ .key = "a52d0b98373071bdd795131cb584012f",
+ .iv = "ffdfa77372d73f75ec83529abe544cf48c4a98120d0f1cf913fdd3b7f628f85a16c30c3400486aa3a0ec0709b07f837cd747bc8d320fde5a0cac23d7ad53ddf849b23202e61f982ced39f523e1f11c9bcf7d783202e8ed7522dca4b1bcff78abe73d7de80314cf5f531a9b114eebbee27fc473157231b51d34f2dc6a5975e745",
+ .ct = "4702702a0c03e798b29cbd89d6389106",
+ .aad = "69e3ccaef1a3325d55079614de99d66edf373a55",
+ .tag = "097d479b92824d417d01640289465a32",
+ .fail = true,
+ ],
+ [
+ .count = 1,
+ .key = "4a263926fb8898b707eb29f0822817d8",
+ .iv = "5e26bca7e93566089e52e562ab87bfaa6b614a9750726e3d260f6ba7dfc96cf3d5f28d39395cd197eef76d0d87d6e9e976050562c55d6c20d147a447d52285b5fa2a6a240814a2f3cc7d3be451540493ee8c1addb827953ccbf9d6a3378ece3a6eff69362e1a5d2fe9f7b7f6a0ebe10b767a042e0d67eb7c3dbbf6aa941a182a",
+ .ct = "2a8cfc4f58fe5b3dea3f3119eeaaa7e9",
+ .aad = "c70148fa3c7219532fc07799e06927f08bc1d2f7",
+ .tag = "9b4f038cff3f70908f7f265a8c66e5ad",
+ .fail = true,
+ ],
+ [
+ .count = 2,
+ .key = "c0236c7840ba6fa7be5ce47388d128ff",
+ .iv = "7b84393b2c18049b32e7197313dbf56c7c841796c98d0c2b5fdf4124de59433496430d6394725329554ac935fcbe70c2b8391f8cd17943ad01bad83a0832bc14c018e05356a787b3ea7aa0e63b0d151d1ccafdbef8f9d6c0ed4049ca4c7399e573b505250895666a91b1843ab04b9c9496cd40d13f12dda10413df686f879776",
+ .ct = "612e145df1f0db0706e571ce744068ca",
+ .aad = "a0d053f7e5129cfd704dc6d7216bd15454a005ad",
+ .tag = "75043f55dbfdddfa8d99f4a1a691f8f9",
+ .fail = true,
+ ],
+ [
+ .count = 3,
+ .key = "f6aaaab108eeb16558c9889b336e0f21",
+ .iv = "a6fd48f08c2fba6c21fa7bd2bba67e9bacc2bf2392ac79ca3ab720b9d53399256733d3ed7aebfddc2ad4a3276a807ebde90e457fd3be0dc1f0133ed538267a4ba525f22d740d05fbda396892599d67785501e6faa3d1c8c34959aeb6672cfc2211418bbf74148d047b1e3043fb79e2a038cb2274da225ef35d397309f75f880d",
+ .ct = "54e690539726d2cea6fe79cb05989af7",
+ .aad = "52b74e3a9efb483f2e2221965b6cde7ae44422b0",
+ .tag = "c8d040e29b869b2671fa3029a081634c",
+ .pt = "3a9cb2cfa0cd9aa7671b42cdf2726417",
+ ],
+ [
+ .count = 4,
+ .key = "febd7ce35c972344950b889792dcd209",
+ .iv = "28a06cd3a08e706afa1805e57005d8549a014fa161c1cc738031151dd67aabaf0a0f6411769f40e0f06e5558ec178bcad62d956bc493e8a7642173d8bb2af554f1411d83822d3475300bbd13b9735c046944e8b7f8d8c16878d8d68081f771a97fcfc37cc0f8c93afa6fb0ee4f7e286ca2048ded47271f7ab9490c6681186f5c",
+ .ct = "0e81efc1a1f77c2b72b5201b32ccb858",
+ .aad = "41a1570f4cd16229014514a4734d827b6298fac1",
+ .tag = "35f0fca740883ae9e450cf77fa780cf0",
+ .fail = true,
+ ],
+ [
+ .count = 5,
+ .key = "e846dc477c321b15b1c04fb6602c2e4a",
+ .iv = "63eda827bbcc72cac431ecd62ab7a481d3bc38f28ca4538082f247c6afcd2a4500c9afd1c1dfb12a91f89812442c3367d68ea1aedf49a8de30ac6cd9008c858c8e22c375d8b4bdae8f4f730f51c2fde3ea798f5e1d955f883b5ea7c0d488aed00fa20300905097902d3eb85fc87c533ecdaa50f8440847e84da6cacc4a03eed1",
+ .ct = "5619dc01946b3a5a84c74b065274dee6",
+ .aad = "c4f7b988967ea5ff745299904e70c147219c2c2c",
+ .tag = "d98e99606d40062ccc7fd39ec15395a4",
+ .pt = "1f1f409b09f2a65a060f32a31af76c5b",
+ ],
+ [
+ .count = 6,
+ .key = "7599678503b57d3e415c75a4e807b48c",
+ .iv = "16c28e20131632b6adb278d67a8c130f966baa0382ed70af743bf6a4582e85739ef7e32b3ba15822401005ad7a101f7797ca1ce8e191573bfe633cf0594c90ea9b0e64d1e2ab0d6e7f04509745551f324ef2cd20fabab00811c48600035e33f5a6e71c0c6363355c9562a18e5fd8719bec963823c6348b88837dadd5c735bb0d",
+ .ct = "436f308462a8824f974453a3f5e4b498",
+ .aad = "df45e9b7e64f95005ccaa6ad2f0941ec1c273520",
+ .tag = "4a40c1550c9608da6bbc34fa40d94d9e",
+ .fail = true,
+ ],
+ [
+ .count = 7,
+ .key = "7b132c94df5400309dadca8b2cdc2077",
+ .iv = "34a15fd4cf23a99b3c59870481909ce69a7db55af29ba2f81b4c4aa3720ff9edfc234af5d28ebc82592554136dd5c1dfe69d589eadc251c4d7b061ee55815b1c5a14b2cd4f3395f28ebd01c117759c965c1b5b99d64a22960e71ea72aad244f9eccbef698ee388ea8a819b8a66e1ca75dc206f572ec47325cf438e435b397ea4",
+ .ct = "6955fbc37f4d566dc92e0d3377c4c19e",
+ .aad = "c65349f392db9a70db6a871539d1de24da1d5c81",
+ .tag = "d1bf27134e49eedc5e30a2f19ec27414",
+ .fail = true,
+ ],
+ [
+ .count = 8,
+ .key = "76229ac6e5bf1b5cf01df0db7c1e559d",
+ .iv = "6440c5a7226c4da18ae21f49936d6ea9c98f725efd70c9213271ae702fe377875745bfa3b126b55d626ecea69ca63c06ac87dfb95f74967e01e2f98dc428468f9e8b13db206af95f7bd84e47590dd9812888e4c3044168ae84effd16a819c007be04688ef65568d82989aa6adb56e43831957532a6ec8751f63c88ea976c1bff",
+ .ct = "acdb04e147705ffc3864cd733aeba9de",
+ .aad = "0e32e98531ffc01a12c06f13187433144cda03fc",
+ .tag = "7b6e7fa3d2aa18be1f61e067cff60435",
+ .fail = true,
+ ],
+ [
+ .count = 9,
+ .key = "9892042c51978b0f49478c9041a9fe2b",
+ .iv = "5fa18726adaac5e0b04fce20897f18039284c6f36489e017257735af73dc6f4ad6f097c533b1e054842e1400d8dec5f6b9d2a16cc115114afc0d3204db808d3c1d8ce66a2e57acf3ff32b7d78017bf6ffe96f16def7336cd395df15fb8d76d124e60539cf6fac2bafc8edf048f1e1f60817b05979b0e2ce5f58153b4aa977557",
+ .ct = "ff938b9b33a28b60992fe1e663c075a3",
+ .aad = "8df706f8e9dcfcc8fbbc8a56be4c5086e9a7349e",
+ .tag = "a2b59378d6599351c585e37f6c5a5a5d",
+ .fail = true,
+ ],
+ [
+ .count = 10,
+ .key = "7dadc601b8ec46944bbe090b6c72c8d8",
+ .iv = "a3394875aeb5171b6e607951ed5b4711c14fdadf3d535e56456e31e61666a43475975107fe4bbe8fc11198b4b20983e88d77552bb252f27483d6ba6d3e410651705c9319dbc7e88438f6c9823f5f4245da89281daa57c8cb9ac020a89bf45255704ea7ec70511473a4fd41166d94f583a3686c4c4cb72376ae8e1d64a31a9c4d",
+ .ct = "dba22b94950037ed0d6a2dd52ba6c44b",
+ .aad = "26514d8001ad097d4f5ad7d0908006075f3e17ed",
+ .tag = "f6ccb4aa5742034c8aca50ac25b7e0c8",
+ .fail = true,
+ ],
+ [
+ .count = 11,
+ .key = "ec5a4c8d2ad2bca25cce78c2fa682333",
+ .iv = "7167af5fca6a9e40a9d63408a71f4f51b1e0b7014a9fc2364e4f145fe9c815a692f635a37936e8f73d9525e3d780ffabfd59620becf50c9a0e376ab99e7f245333bdc276b445af062a1f3637a892da5514fe5e5bf0b7cfd0ab25bdf2e70c6678950874777e95564e29969b0be1ba04346ac5f033ec8ab15ed04aa3ba447e45f5",
+ .ct = "4a55bf6f9b91685402629bfb7d2940f9",
+ .aad = "d197ab5ca3a5765b0b9757b0bb3587d8533d4c8f",
+ .tag = "7a357d57fc69751f7a630206b8f39099",
+ .fail = true,
+ ],
+ [
+ .count = 12,
+ .key = "0a842d68af01df3fb86ddafff1c33a25",
+ .iv = "09f8ffb4f2143fda9c45424d51b13cb2a1d8915766271e01b44c047aa6f17cb442f3afb4c0bfa428df27f8edc2ba2cc4a4c96178cb8aaf09ed8bb5cb9bf07d7c243eebfde2f6e2ca569c2568d358a8c9fca737fbb6614a813b4dacf4f02f2f777bc1407e7741cd7a600b1b83ce42b9d1617ef5e7672ed25375e436f593d67cab",
+ .ct = "3263d007ab50d7eb41c4ea98f2f95fcc",
+ .aad = "5b5b4ac4eec98c98677fcd0d5d85466a75ce5af1",
+ .tag = "6721565e1d818f0e35546e8354dab671",
+ .fail = true,
+ ],
+ [
+ .count = 13,
+ .key = "12e92b64e285e17cdc5710c14cebc5ab",
+ .iv = "40e96613a6c62b690ca36ccb51647f4e00bd5f0922fc349f3711c06e0708b41fe93c5852d7dd9fe6fbfbf77aaa1c9ae7e629f842045b5733ee4cff7b0998dd0315bf1230fc42956c482f0740fa28616899add8109cdae4d8112b9bdfd8138d9b7277ab45abab79e02b7f7ce6c5989b7c903bb9c97c3fc0bddb5d61ae67eff1a1",
+ .ct = "caf8231e2956667786a440c37f97449a",
+ .aad = "d8c5f9d31663054f16099d50f2aa538bc03eb3ff",
+ .tag = "539c0acca1b0d02544bbfe5404cee33e",
+ .pt = "94dc552ae6f4da8457de056887efab01",
+ ],
+ [
+ .count = 14,
+ .key = "95d7f2886574298fe47ddf1d091bc2c4",
+ .iv = "eaff65fed48233067c6718658a0b77660a9604aadc6919e75fee677b9b2c2d7e68b8db7f546198180edd02d5fe5573b6fc903e8cf08be01c7400d6ce222c845ba807dea6f09a930316fcce67e84dda234fb0610c7de52a38d15ebaf4d7d7c643352f819087946afcea054a68d79c1ca2956c451b3ac8ec728cb8dd0c5d441cff",
+ .ct = "08374488ce847f6666fa6a48381f574a",
+ .aad = "3ceeca47b28e33e8140fd4e8224defceadec2049",
+ .tag = "1e88e015b1b13836d664bb5896f50f9b",
+ .fail = true,
+ ],
+ ][:]
+ ],
+ [
+ .name="aesgcm-dec-iv1024-pt128-aad384-tag128-key128",
+ .keylen=128,
+ .ivlen=1024,
+ .ptlen=128,
+ .aadlen=384,
+ .taglen=128,
+ .cases=[
+ [
+ .count = 0,
+ .key = "476377741a5b96c38e290ac702574496",
+ .iv = "399b54433f14356a76b4db0f4403b4f77dbe829ee19088a9e3becb6ebfade9739658f2b831d5ea56ceb7e41fc956652cf1c5dabd7286502bf56b827515c97cffeba2b69c2c29e7d44733ddeb3968eb71467f9d8b47a6edd1f014f7a5d853eeab61f0ae9ef1004ffb93f9cf701728bcad027477abd9626ca4432808c377814b37",
+ .ct = "64b4c849f5d562fc44aa6dd4596c252b",
+ .aad = "e8db5fdee206607142116e18ecd514e5a936e5e702f884038d64e81ccd0af60149e28cc696ac649291919f60f8da8ca3",
+ .tag = "fb54ac9f331178b84b7117c8e3a3dcdf",
+ .pt = "ac6f6dfc42d0409a4c4a1d248c88f9f0",
+ ],
+ [
+ .count = 1,
+ .key = "e069e84efc515534962724015af05d2b",
+ .iv = "ad9a50d71ddb0c428588ac0e2f5efb64bab6ba8b3acb9df987c3c893ced88b83b2dc8b3b1c01ab7a36a255971388373ebb534f8ed034c17cb2943ff3c0a6807ef6a522bd0a1472610651312fae2eeaba648c66bc0de7478f2c5d6a246fb1f5fe02e8fc8bfc797c6d9015233a42ce20516d8972e57930067b2b521552c2aef9c9",
+ .ct = "6e420b785a54d418cfaa9e7912a80944",
+ .aad = "278f6bee6191b1d2af510f1e9aeedf8b9ff8d07410ebdd297e94829a5700aeb1d23d10406bb094bef8e0d926879013e5",
+ .tag = "990b2dfc25a3a7ba20e0fa9dacfccd90",
+ .pt = "490478f3c2613d8104714085293789ca",
+ ],
+ [
+ .count = 2,
+ .key = "a607fb34c355f49d2a0cdffcdfda0bff",
+ .iv = "b67279c35e73faa24327ef2f3b5da521a9a96f490ecf5ab563cbe36ee9c3c4f72529359069b817aa86904773c0e83af2a613d9fde1e15c8205205bcff6fb8e4454ea5faaa05845b84239d0f4d20aed44c095c8bc16be153c61ccafd4ddaf044c04ab0c148cf636a30bb46c940d9a8140c0b235bc9cd6a3b95ec8588a3964236c",
+ .ct = "c53fb39b95143ffeceab4d006bdf7b3b",
+ .aad = "ba8ad6f0e7463a1fb38464e6fd62885328e22104d8d88f46bde37f974842c0e51c50806aade2f121b45000807ee0d972",
+ .tag = "68b709bed013bfb558ede8938b0dd24f",
+ .fail = true,
+ ],
+ [
+ .count = 3,
+ .key = "f2bc9105a8c4e13d234a56866d86adef",
+ .iv = "a8f21bf937b759047ffa4f84b46d5050e7bc0761aefe93e365fb025867ab15c35770da3734c8dd15c3f7fe06a1f30b80e0fc1ce79922843a2658cf76b58e07f03f9d65a7688ea0d67e0b481743c5fa2dac921a190a7ce39df60de7e5f7cff992378a2e4cc9b6f78c8e034aea5c7f70fef805589a1412ab6aa2e48adf48273db8",
+ .ct = "2ae01451631937558d5bf0eb18cfb43b",
+ .aad = "a588870c00065bbe6a1cc74c1ce83bc77fbd402f5484ab9748b48474f74e5083d783f8fe91082ad3d80037d9a1dd6c92",
+ .tag = "540bbe9e23ba4a1425bc43b97a551a5b",
+ .pt = "3fbded707701bd1bcc03434f5f24fb45",
+ ],
+ [
+ .count = 4,
+ .key = "7405f96626a18d0257bc71b2d04dc1ce",
+ .iv = "dd81f4b322d48d993007c2f00600df9ee153d5e28e3ab76a26945942181e25a136f564a4982d0dc19746635b311a253330bab1d338ffcd692076160892d752c38d25709fb04d19a34ceb03bac94e6aa72633b5b8db9213dab268a61f4d928e002ca52434df8fca93ac2bbf2109344d30c5ec9b8bf818b306433e72911e4c9e98",
+ .ct = "b0349e0805dd19ea9b11101e60f5a63a",
+ .aad = "ccd9c14aad557923e40f8b12c7a0f7c2f766118e6696975d900cef64fbe559920299962cca510768c5b676cbc4e671a3",
+ .tag = "321dbe18247da112eec9bf8411dd8a6d",
+ .fail = true,
+ ],
+ [
+ .count = 5,
+ .key = "68a5808ac2aad51cf7572b7fc3c7e21f",
+ .iv = "9d09007605332c177576edf66b70b95ecfa7ddeceeda065fce2ad8ac35f1b2e6d7b6caa76304515380b245c6c3c8d923842a318afbfd96a5ef17832f8be69998b411b426b6cf697e1677dd6a11c9d45048323aaab8bc548815c6c6234f7cef1d2170284b5ff3375b8f6e4df4fe0acec3f5b1df2951764b8e6b6ab99fa38e1464",
+ .ct = "bc836bcf67ff2a0c5474b0c569f91fdf",
+ .aad = "bb72a454f1dcc676d28c0f2deeaeab6bc3b7c71cb2c7db3c07684add84ad2bfb42ec55cc3556ee114f8687b9650c13d1",
+ .tag = "34c038b437661ffc9536580dadd8a4fd",
+ .fail = true,
+ ],
+ [
+ .count = 6,
+ .key = "b1257a221527931ecd50885d65776a80",
+ .iv = "7489faff0e23f98a21efed0abcdb0bcfff749a1785f568b54cd2fc4fa72368af7698c6342870cd50827c8f6047cce5d1ba92517de3244684bd53761698ae63eb37c9a7a6a284c5955957fd4a9191059847a7fd00b73fa34a08c8fc23d8b2d1ddca6486489f8fd3760190b0dce802458fe388ce6722102fe6cedab89bcd20075a",
+ .ct = "11e9172c3a0c4e7fbebf10a3e129903c",
+ .aad = "8e1c90013731ab8a179971310d25475b41389ee1d4f8c5632305a47fa6e142ae6dc05b468dc45b8ac14902304b869a8a",
+ .tag = "8cc177334e44c8e7c7fc76a1468cda79",
+ .pt = "b8c9fbaeccacc9a8a643c2bcc53d46dc",
+ ],
+ [
+ .count = 7,
+ .key = "67154068626dcdd246b24cb2aa71cb15",
+ .iv = "6ad1c1426eea2b64c64f2ee164cfda217a3f843948954290cd42ec62e799163c55ae63de6152a38478afd2405d4971d804e1ef702cc47eca3958cf2fd9bd2f82f2688177464c9728be01fc69fc265d3773638f190a1ec4856f3429f90f5877afc0341b37f763e50b8fb6a238347b08f182de20a590630b21853296eeb969721b",
+ .ct = "eb2abcd60d4d71f6e21b9dac3a73ee8c",
+ .aad = "5354e683a7fcbe41b5a4fdf7c80dc1ba216a0aaffd6d5c6e42a591c7b3275b91128e03ba36807ecc170a89ca56cafc27",
+ .tag = "b349c5a129124680bbb9cf49502d055c",
+ .pt = "ef47043164820556d9e5b31be5a3a78b",
+ ],
+ [
+ .count = 8,
+ .key = "a6190b4e51e774deeef9adb4cafc17c2",
+ .iv = "bb5bd0acaa6c6b535efa342615a771745bb6dec39355a852016b208e0533bfadb8730ea7f456b1f8fb0e72f8004e340f8d25e59a31774d605f9719d10fa860d356182f49f477281e06a6cf837ba355237fb5e3a356c4a585f15509408e9b69efc2f1e89bb9ff2de8d93acd11eb41658949517233c261d0d6ae69683890f62d1c",
+ .ct = "24f24a59fe1c3212825334d86107cc04",
+ .aad = "bf5c7c1d95126b17f027ea258357bdc69ff2af27cdbf7a8e1b091cb8410e6d5d3edcd7288ccc981b86b277481782879e",
+ .tag = "a7e9dd8aa0f9977d3089f92924a7f5ac",
+ .pt = "6a75759620d2da9e1c165bc1c70af459",
+ ],
+ [
+ .count = 9,
+ .key = "a78f15b198d427596a0c1957ad02a52e",
+ .iv = "6910d3357185b7204cc4376f65433b53d056387d2afde12edfc4de3d73d2ec4021788d37940fe115706ab3727198acf4892d4c5dd4bad515c7abc7e2841bbd7c3434eb607e92d00d36976627488744d8d09d9876083297af77815fe8fe63338b2162241e674847cc8aca85353dc566ae71269b333dbbebf541a815c918f4a119",
+ .ct = "bad36df08b6fb3f5c60206e501a59209",
+ .aad = "625cff0d2231df631a1913c57b7d0b662581c16b39f435816bed9d712e33450ae7db28792fdbf2cc42f8658de1b30772",
+ .tag = "5566dbd544e1ec3e2adab74fcb4f2a16",
+ .fail = true,
+ ],
+ [
+ .count = 10,
+ .key = "1a8105c497112173eaf7552ad7b43c38",
+ .iv = "b3ac5b6dd415b48c37ce81e86d0dd65206642edb19f828d52c1304d74bcacad7b5414d95ef9724e6b0f657307a07c51e274a6ffec8d3213a90078f8a88b127830094af7298ab8cfa8d8b503202f761e6593a0526f766df40726e9b2f1001ac58c68c7ee368ecaadfe56fc28f8caeb3e747331e1d1afb2a718fce098b41dc2871",
+ .ct = "8f5a2f064dc99113a6360653646beb85",
+ .aad = "cb89be09ea9bc40ddb9501c0037a99713c2ef2558931f65ff74ff298268343e370e7e40ea8e97108468bfd13d8174f70",
+ .tag = "9a34d162215016ab4ab2c3915e5a2096",
+ .fail = true,
+ ],
+ [
+ .count = 11,
+ .key = "437aa53bf4cae8270b1c71ac95200fc9",
+ .iv = "b542cad7372e7780706c125254cccbefb28639b1af1e5d0bd621d97f5de4a42fd40b881d5add4e3516a481889ae11ebc7becf20f6ef65e34c9ac93f17110ab03af032bd2a2de8f3a4fafce0e9ca5ab2af352ec442be8a379bb318a69cf94ae9bffc20399e1bfe072473bd32ca7939fc93f547f77a6cf0a847d95863898cb9448",
+ .ct = "e797fafe1039055acb65d83741e15b76",
+ .aad = "58ccf0204b02b010fbfaf62ee89169956186cbcce1e68e743c4aabbee04fb9def6666d9a06138407488fc5885fa6e12f",
+ .tag = "9460518ba17437a69376cb5f237b19fe",
+ .pt = "d8d94ec76bdb4f5cd18a508234412724",
+ ],
+ [
+ .count = 12,
+ .key = "93103c7a9efb0b44da2849d7aa930a2d",
+ .iv = "7743b664b18517c3eb1ceddd09328935ef56ccb59e746aa845cda2fd188ca01bcfee9621047b7a7019116a3b3ea3dfb9a64670145c02e52e344d92858f3790a0721fc69dd8eb1204472d7320822b44b379bbe1a8c094aa1402acd6afd3892800de9eb6b077ed1be650301261872293e009d090ef23d5d28e7674091fc31b29b8",
+ .ct = "323ddfbfe189417f1e630bdd24e8989a",
+ .aad = "d8f0de6c577aa6662f63d5475317b717e773a05c1958943f8efda312c39012ec6cc0c97f1f608d44a43321b303c0c84b",
+ .tag = "0d59ed60ca6aa3de1be232d75bdcbb7d",
+ .fail = true,
+ ],
+ [
+ .count = 13,
+ .key = "36b8408998794dfbb8cc282e35726385",
+ .iv = "0ce5fbb0eff18d1901b6d69f3b2dd332c87cf9a0c2af8d6445af2b763c3e1559b77cefb797db6eae5d90d54970f29098b264848507370727e3f74310eccdaf0b0bcfbfd53b58399347449f1f1ea019457eacafb3c0f209472ad7235432cfc032b05c869ee02d00957377f36f8a303168e0b3d0af432d044309056185b2efcf2a",
+ .ct = "ad175705c78e649ca253387be12e0fb1",
+ .aad = "c042a37ae8bad2d763733f515f5298b04116d1e718dd84339d5b680447cbc6a40948bd1fb4c5ff4b8389fb35f2d0ab6f",
+ .tag = "f317b0dc26efd9643af714f1a7e426e5",
+ .pt = "887fdeada5fb29bb5bd8706d970c8c3b",
+ ],
+ [
+ .count = 14,
+ .key = "2caa9b26103f454989c79546f85e69f2",
+ .iv = "0d665a71c78b4fc78ea0c024cc21b610349ddfc9d6f141510610aa1b40cdf2b90dd0633ada424a9037bc24da2502451fd1d2707272f27449c82504e8ca89ff0ad811675ebbf1aeb3f90c31e242c69ad79a2914e03455d936c5f681e587f1b8e5faf43ea27159033cbbaf5dd807535ca66014f61c57235a734e414489393917d3",
+ .ct = "a459ac27cf260293fddcd3348c90f6ff",
+ .aad = "8a766aed34b0aea89030ab75a66bb3b7b564e95bd00b9aff19ecf106ca0394491e3201f1f096d24d2cd73600d96dd813",
+ .tag = "b3fea04387d7b2bf90860daee3070fe7",
+ .fail = true,
+ ],
+ ][:]
+ ],
+ [
+ .name="aesgcm-dec-iv1024-pt128-aad720-tag128-key128",
+ .keylen=128,
+ .ivlen=1024,
+ .ptlen=128,
+ .aadlen=720,
+ .taglen=128,
+ .cases=[
+ [
+ .count = 0,
+ .key = "91131f74ec2955bff43a9af9de7b307e",
+ .iv = "a57dc07fc8fd56e90c07d0ca780f9841a30792ad381ebde4c2989377a575631441445cd895190f9928cb78a26434182daf29addf05f5ede7761e1ed63cb2aa4d13a5374958ec2fd0e28c607e4271e9bc6b0ab7b3a5ed4869ffe5ad8d06c3c953af82a308d0c692f16351efded6e628e3612f845f053802794f8ff83f60874726",
+ .ct = "61830d655ed26a91e49abf25e8d49525",
+ .aad = "8c6dbead9d234e1b6efe249a12b3cadaa406923a96be9ccb9c4ce8dc70e86e9c076b99936574eb74a7e230e95e204977490aef1364304fe20a1980f9f04e8f9e1242f9f3c931b3af51f1b75ebdaf1e0c62f4f2d880a09e150307",
+ .tag = "ba446106a102c39c74769934cc2079ad",
+ .fail = true,
+ ],
+ [
+ .count = 1,
+ .key = "23eb299099491eef0beed18bbdae146c",
+ .iv = "d23f406e8b16beccdc3b334ab51868af300d049dfd8bab45c27b5b75abc5c8ed3745f844f82f633d983e7955a85a86ef8ec10c1f550f8a3c353cf24c8e6f0aff678e5aaa00587457515686cf0fb8c68845a6bf121e65aeea755de3ac55d8f0346945968017fc48240ecbfde6503754577b4e440b454aaa00a54f3cfc4f9ee867",
+ .ct = "dc089c13b54a16d5f944b26d3b68b766",
+ .aad = "4e2847d917d2def9fb3a9ef2d064885dd04d8aaa2382736f9720757be8008e8b5eb723a34ab635a25ca81537e416e82fb001d4edb69a11343dd7c11109638a22843b5c5437e1c3c41d7268e9011c6a94f5377c7712fef10fb3c0",
+ .tag = "1aeebccc4da57bd83b4ebab91514a7c8",
+ .pt = "e75e5d72c6a30798029c833265ccba8d",
+ ],
+ [
+ .count = 2,
+ .key = "4ed9dd92573f450003e410f96cd74af6",
+ .iv = "7ebd92919cc81a59c1de7a9c69d7114013fda30c01460e44a449c116eb14d1d2c6cc76f900f8da13a070bc2e0ea29868e352748748cd6770c64882651426e7d6d3ffb2b9485db8b78265added3b44affb8576393656acc3fa2516cecc1cf693ebea3b053e02d8b2ae1c91a051dc9714b977e47ec4f0d586d21b7a199abf53793",
+ .ct = "06964fa45aaa2da4b101c658db5a6f81",
+ .aad = "5e39946c5477aeb1f8a653ee387148c4f3dd4ee8dd2b26c9b300cd4a505b5549b2b8ee0862b0a7074d42a0b1e25aece5601f8e4b07ddb95da2434d15bf4c13ab782949d2b3129807f0a57ea23546f6f403941111b8d89d524e98",
+ .tag = "b7df48abc661677a9d7edf02458edb92",
+ .fail = true,
+ ],
+ [
+ .count = 3,
+ .key = "d92e5b622785c793ddbbf557713ccc83",
+ .iv = "f0fe6f923c2c8d6212bf442d7b593ed2437d49c8e718212638772c83e92ba697bbe5166d6ee494206032d4403cbe1e553315ecad316e6086fede59948cc342354270e38daebbfa68e34253d14f3e6e6ce06327d3a1200fac1fcbee02b0877025d540759badd86484ff0a4c82975c310538097f70581a9e3db3d165f94a424bb9",
+ .ct = "d812b359a64518fbe38280fe500d4615",
+ .aad = "e378838a180d88a2134b60d556cb3b1cafcbb286b7609c60bb723b0d27b2d0f87226943cd995eed5ab330c933318db5a6d620e063ea4c5abe29cc8fe9194b7719a5f13c7e2bfd354f4d805c59f4f9ae556fa605207c77a3250e2",
+ .tag = "e96f5a20621d1e62f929397c8b89e9b4",
+ .pt = "b3eb525e4a70b2fa475cd4e5837b2262",
+ ],
+ [
+ .count = 4,
+ .key = "9dbba17f8d832a9aef49dc4bb4e2adf1",
+ .iv = "4352252a75c476b8fd0124c2e727189222d9c1573b8bf688cfa9b06d5e1e6ec595f0a8316b195493a049043f89416a94f58effcdd29605cb20289cf694ec03246b701e4e7c6adbf190b21200060aea85d58dd946558ac61d77e0bdeff064fed3763761024b6ae16dcb30c0460ffcffcd0e300a28eb828b965ca5d87c5c359c92",
+ .ct = "c2fc74d7a7cb279403bdaae2bfab5da3",
+ .aad = "5f12a4e975646c04ee1be9a497efef89c586819b78b8533bfc6fd3d3488d015d82883ef997efb648ea679d1ca2a047d6f230fd4813ff3e2b54d41dccaef6427eb2594b4a27610eb4a9f84f3e916ead0e60dbd29e62482e493143",
+ .tag = "3352885cc2274337e87e1fbe9d2bc9d8",
+ .fail = true,
+ ],
+ [
+ .count = 5,
+ .key = "087408db45e773e7888b8f0094ce42d0",
+ .iv = "527275e07cb8b9732eabaa40653f2e95cc55125854645995a8862a4a2bcf08ea7403cc7fbcc0d9b8c9d02c3804152f44723e91365ec6ab1bc5fcca91878b70f77b69abce35822599abac3f2d54416a5e64c9f0d242bf5647f064807426ef68ced86cff384e41141a48e362896a10899ac8ad93d6df8dc794de1fed3ca51840ae",
+ .ct = "705898f01e1f3eb25a0086bbfbb5f859",
+ .aad = "d458fcf0f2789c1c8ba7b2129d7ab937841aa97f371c9a8cd49b20a8e8f42c725ed84102e925b9d2b5a76a75e25566009f1a21e6bf08ced4dc20655cc70d5631bbc006f74a296af0f96cf300621bcaa5b8882046ffe3baa9b6e2",
+ .tag = "7c6add255b432157c5f0a4a176660ff7",
+ .fail = true,
+ ],
+ [
+ .count = 6,
+ .key = "57be451f83474a2dd56f14c6afe03391",
+ .iv = "2962ff49eff4db2329f650646d0d775829bb4cf67790bc52809e50e9ec7ebe55fd4a5afe40069e04209e75a5c48c985cb3f6262c512ac0e96b5822865fe5671fe7b35a44392c38a1e8d6c23f0fb82eb8ca4bae5b433c79576c713e53c71783e3d6104d8e6f6edba481dee0b3bebec4672d5e5a0de620fb27a78a6da3c44cf8ba",
+ .ct = "eb9c280a92a1d7f68ccdf2df9d5efad1",
+ .aad = "d7c354cfcef973b065a8eaa4371e4b2d76934624892587f6afb8773353e55cdde34d68742d602d482980f48becdb8b34c60c039b51c577965eb37e78ceef4acb96c2cad99751142c9fdf9af5eb1927e2edcf9638b2cc2ff2a810",
+ .tag = "14d70c4e84be95e776743e4b01d9c771",
+ .pt = "561fb16e767232e0b46f211f9eab5e92",
+ ],
+ [
+ .count = 7,
+ .key = "4b2d00047b9c301d908ad0669ad2db9c",
+ .iv = "7bf647d393fb30b3464b91245ff5a7f7d4dd74ae4a85e1a51125fb5931013e684d23a88371f77a8024a2a8515d91291c14763a8b06c89a4ec4a1b3df05ca655590f37249920bbcf81a75cc9a194679520be675164df7ad7a0a3aee837bb17a4e864161e0301c8a6353ca9e368f39f1401425e885b1a350a55a451b66efa6a554",
+ .ct = "4ba48318a28e840db18ee1823c0eabd6",
+ .aad = "575417c56b5d95eb33f492adcbe902438c7fd584b104b2753d79ba64f5de8f63705710d2d5e755dac2587d9dee32fea58dc2ad92da9f3b082397ae9bb4ec4199202129bea2ca2f246977e4ad395e0310400a78b10cc81b0aab26",
+ .tag = "dc8f9b7949ec3eee8ae1ef9244e2c439",
+ .pt = "6e44fde3b64d3b9dc9883915c999ae68",
+ ],
+ [
+ .count = 8,
+ .key = "17fe6e0ed985b6b553ee13a1733e5683",
+ .iv = "64051dd62a6554196db45b982cfe0a73f4a09d96dcc429718fa9f851f8da3dd2ad49ab0648a61f389c469a21166c9ebd4b170ddd72045610c1ed0f15165335ddf5325812592da63aa3c1bcc969136a2ea317704c36e0be69cabf5d6b3805551fbcbd11eccdf7c10c8101e5842e5d661d5fa393b5268297493fbfa54610294d28",
+ .ct = "b365f3b7bfc51c55d33dda9581f9e516",
+ .aad = "1c08f86c4d79ec1d885c9d96482e3c958ad1bf229496dc6eec8ec827572b5b5f23c4280f1148ffa68df2f344088a2d1df36919b5a0b7da7d2b80b30d52735a303a91f746d609400f944ebd161d7346786fdb24bb1913fa27a90a",
+ .tag = "94be16d995fe48303fe6ce4865c70f16",
+ .pt = "c89a9d95d69f40c49cd937b1941c4de7",
+ ],
+ [
+ .count = 9,
+ .key = "badf13b65ef19868ae1830424ac04f94",
+ .iv = "602133e274c80518d3488d366a74e20284d80f332831018b1004f8e8cbdecc32cc478566119936a54e1ad971eb9023e07c5fe60fad68aa69dc3750ec91b93f1632a05e38492ff54722a5d84f4be71bbf723b3ca0feb43b4ffe0c95be0b5e914567a033872f3e157ab05c4f9df49a64fdebe10d48579c7a3c62321d1ddd91fd4f",
+ .ct = "10700d5a2075321a7ea1e57205def8a0",
+ .aad = "1d28aaefc0b70134a4ea55c2d79f014f42c1e024caa82f00a73502c2044b0ccf381246f9d8de8f644fc23b26f836fd6b8ba70573200892a3a3dbadfda6a49767576fe8b732750bc43ff7b37adaa1e4feedd7e6f20dc52369ea7d",
+ .tag = "c045f2ea41034484d30fdb179881153d",
+ .fail = true,
+ ],
+ [
+ .count = 10,
+ .key = "787295c91822d9cf8f01ec4e9ae35416",
+ .iv = "f36810ec62791d5111a78944ccb978bfa2d42108606a208dfc1bd09b1be235434415b1e0acf475d5128472f9ca261158990a9700c16304f3347d24c7e9b80575166e8e8f64e9374511d7938e58750720452ae0f56daf8506d26a6fa930999b2d1d50619065acc0fc68e21b3b8c24a3871682bd7056360a74f4ba735ba0f16818",
+ .ct = "96f5019f7d067d0c48dc672c611e23d0",
+ .aad = "30e1adb054abfa80596db8d3132b198adc0091830881e0792a3a60a482b20e1b68dfb4868813a632cfc88bbb47f727ed32b8d0ed232c0c553cd9247ff9c9514394c87e70b305783bf9bf4980d2eca0b4ff7e45843ca9b0dc4d14",
+ .tag = "c9b3701bea43c08d46aa9045ccb54916",
+ .fail = true,
+ ],
+ [
+ .count = 11,
+ .key = "eda2c64ffd06f32f9f96e400268d946d",
+ .iv = "8c892fbe1af3694c6071f2fd2a413e226bd24e9539fd3cd9c67959b5bfdefea32f1999d70adc583fac0259d25c096d069e8ab3f6c7e0ba47b70dde9b64e50f70a6f12b31e827437b33bfe3486e125c0e80522792adddcb9f5673a7518b729356bf77c5591745b3a99d9d8dac50b6ce38a9ec7af1b874418a5095eddb9c84255c",
+ .ct = "8c73062c8ec304dbd5d17fbd7d5d8661",
+ .aad = "6d1fa4161eff45420b11c8ac1075139c5343e87903e2bf9b4b6666f2907f0f88a83d6d491ff382ee18aaf61cd21fe6df4bb78e044543068760a24d1c7000efb7091836f2d5e787eda53006a92bbf08557b53169baa755f17c8d3",
+ .tag = "7d95f02a05024aac87e695cfea3d2bbd",
+ .pt = "896a4cb1f15ee54074a41e389b913eda",
+ ],
+ [
+ .count = 12,
+ .key = "d1f1a1f8f58c3b5e2abc60002a39a0be",
+ .iv = "7ba5fc667af4e2366f2a9784ffae28f277c2d91421867816a56a247792106f70c76888bbd5df95c23333f828376ba72f1fa91b9c1ad1763c14a8c132eff6913767ebf2ef44321c2384aed9c38ae64121cdf9cb25e5759728fbc0ad628f5b6213e585f3d097bff2b43e64cb89f0301258fa8250f7705dc6e4c5b903b455ca5425",
+ .ct = "0683ebd202a1ac03ad2620471a27cb76",
+ .aad = "800b4523dcc5eff389b75b96528bb7f2623b3343eb7db2a3158fdd75371fc3cebd845a2ccd5630ce961ba0cce440f1aa9baaeee8b75cc896394be15c09160a232885ef816f9e6d149a5a7f7cf3bb902acef58c94dc3a18f07301",
+ .tag = "516bd59564159a578d0844af9596263a",
+ .fail = true,
+ ],
+ [
+ .count = 13,
+ .key = "ee4039acc333054446cc6bc99aea8e3f",
+ .iv = "6f49b915cb90a27f573331893300379aec75de8d9345a5dab836d5757c7777b7913267632d7e7e37f7841777abaa29724d358fbbf1576b2e1c0805dba5e8b18eea8a84746c72c9e8d5d9da99c3c8f57fa5f9933098807ae66ca06488604a05579b239d5c65c02963931960d87e9c4aa9b115975b97928e4315f1e368a320b11e",
+ .ct = "4639af0f3a5f8240580da48507427ea1",
+ .aad = "48dece800d811a142e0f17a2e218186d99a7e077c2022df78cf8b6132217d7c67c1a73c2956e7ec5df29eade6379a2faa7c86e28c0d931530ad8bae7986a8d54eb8884e1a22573b43ab8288d41a6f46404bebfcc699220da62d8",
+ .tag = "0f7b4c7db18cb91dc9a65af2b29e257a",
+ .fail = true,
+ ],
+ [
+ .count = 14,
+ .key = "dd5d118fbdbebb105aea471c588a55e6",
+ .iv = "80c586844eb586c9bf84b7bbb8a5dabfaafe2a4769cd93985665d1a7165b751c15db8ecf7f936805bfee6562cea92ff8b826baf3e71f3783d0af056ba709e1f8765df23ec8de6cf88c055be8a84722f78e9914f2f95e840c01f9146df979c76600b5612992aefe5de2741d0e68152c93081824e63e9279c0754464f4db48c72b",
+ .ct = "d4f9c2a6798668ba445c89d41395f3e3",
+ .aad = "57f5d2f7c66fbd71ee1b46b38d7d7a3520b3d3736f6142f6bbd530c71208ed85cdee5cdbafc87cb496f9d21d75d9064f4cea4222a12aefe31d44767005d2ef6c4152fd8683793cf2ffe3e5d6b5688126fff013a377ba0b40e291",
+ .tag = "8a87d595a18208e3337c7689098357d5",
+ .pt = "3e99822ef9e6eb185c1fdffb9fa9e1bd",
+ ],
+ ][:]
+ ],
+ [
+ .name="aesgcm-dec-iv1024-pt104-aad0-tag128-key128",
+ .keylen=128,
+ .ivlen=1024,
+ .ptlen=104,
+ .aadlen=0,
+ .taglen=128,
+ .cases=[
+ [
+ .count = 0,
+ .key = "de7b6af1a2d0a92f8f5bed0ed2a4c3a5",
+ .iv = "7c648aa92cbe2467abc4aa77d9936cdc720b3ed607d88244adf2a96abcee5d925050355656115e7fae5ef64a5f3a70cbd103853b5b9a93223ecc947bfab2b3b33f0bcebfc1cac46f3ea4b87f1344171ab276feb5ab5cff7d3af059b11d0ddda90fa6e45300b46d702d6a2bc4994d87f013052059210565e87194daf86b0c1ff3",
+ .ct = "fecd59b042fe86d2069efc2531",
+ .aad = "",
+ .tag = "b5e8a287aaa1545ef43cf5d1f6b8e8b2",
+ .pt = "6b392c43cfb074ff6cbb92ef96",
+ ],
+ [
+ .count = 1,
+ .key = "f1bd519342c172af750d3f0922165bcb",
+ .iv = "d3ed68092b3cda7f4eaad71941b309cccca11fc42041f52eda959512e3fe0b7094d99e3f7ca4a675491d38f2b1c4f28c2f789d6bff3481d68a365159486e822384321a45e026c2a1bfecd0b8852f1895e09a213ee63ea5032ee22830d78ba990cbc60450435fcd97b501377d702f90d470ec566c883c2c979f815fc8da237cef",
+ .ct = "be5375072610b9999293113564",
+ .aad = "",
+ .tag = "52df8b8c7e5db92b3d7875b97b6a7cdc",
+ .pt = "660982e7b79a100df1066f1560",
+ ],
+ [
+ .count = 2,
+ .key = "bbececfa93311d6beb731020c5105c99",
+ .iv = "095105809d41566ea88e16622a43b4bdab085fa82fcca5b36ec0a3630e470172976610fabcbecc8a1eff36665f89f9c5c4e45338016fea9d54a5c60a28f5b411724990bd2a09c32cf0f33d16c197c65dc720d6e661467da90d326023191d639dad4cce978fa7922dc03c21affc1046904e9368a60d0ffaa7d851ab294babb52f",
+ .ct = "5421397a77b7a52344fda7810d",
+ .aad = "",
+ .tag = "0812c10cc19ad520ad2c77a00af2893c",
+ .fail = true,
+ ],
+ [
+ .count = 3,
+ .key = "65f9fc56b52c5a677ce4f62acf9bde96",
+ .iv = "69588b83c1147297f94745bbef99b6993b12a2807cbf53017162a1b3bc9ddbabfa4267ef87c0c430a963d56e9073fe1f66f2962b477f3cbaea9ea22a47ae3df3bea0be12d43c68d7bcdc935a18f399c67a5ff75d3ebfb36534befda065891fef4eb593ffce3dd08823c45122d84bdd5cf6dc81b56f5b9ca4ca61dea25ec77dbd",
+ .ct = "71b751a2ff5e90813a9af39e73",
+ .aad = "",
+ .tag = "927b235632199ce8085f37f8f2b73612",
+ .pt = "19c9146103d2f25fbe31405df4",
+ ],
+ [
+ .count = 4,
+ .key = "862c5f4448b5ac53c83344a7034cdaa5",
+ .iv = "35c6aaf7172ad94774beb6e678fb8eac0ab9db6fac0554bbc941b9bf5e7498e6e7e63602911218d602aa51030b4283a7ec8f5d2641e281d95c2b10f0726b39f372f0a34bc549d65d7fef1f4aa8810a4d4a4f5fdfd85d5d754b7fa824da0758068b2157848e3ad01f4886db189533323689dc21d41291d8d7c66360d42c5e8bc2",
+ .ct = "b506bb59eb4536661bcb4462ee",
+ .aad = "",
+ .tag = "2b1859907eff41fe658d61ac546b9c90",
+ .pt = "1a2b284d8daf24353c7722fd5d",
+ ],
+ [
+ .count = 5,
+ .key = "a88891634b3c14afa7a2caeefc1ed176",
+ .iv = "4b3df5a8d8f14d29913c6ad7ee41b18fdcde1f9f5e0b4f7033cb417f4813af10fbb6c86f9b955789ad81542f5e156f950bcc7a4c72d588f63cf9d887f3c31a454976d6723131b7b7804e4bdfd3480ca684de3e99a0252f508a1d7c29f56b597a8cb6da2237706b3acbb05b7e7e6dc171d5bf0ee5fe081b37dc21bbf144332df6",
+ .ct = "c1c76f79f36cf3cce252f5570e",
+ .aad = "",
+ .tag = "70a05439f089dc582b195ec879494bbf",
+ .fail = true,
+ ],
+ [
+ .count = 6,
+ .key = "4dc8f871778f44f28c1d99c58ef0f26d",
+ .iv = "e111eafea24b988c0507d177476c6e62d52eaf10f89a3a8cc9be8ce479d0a4fac6b5a8a0360d90340eabdb79eb78fecbe6cc613fd5db663a6a715d1ead57d2ed89805adb8e3f2605aff2a9e9972bc8e63455f9e918983c3917dae10450af11c0ed205c1ecfa8b53e6746f3fb6e0515f2b5928215997f34e15eb2bcb9faee8bc2",
+ .ct = "66836e1b6043a3bec4c727fe66",
+ .aad = "",
+ .tag = "0761452536f6f4db0da63f9df72508e8",
+ .fail = true,
+ ],
+ [
+ .count = 7,
+ .key = "7734402312333dd3485ab2ffeadeb096",
+ .iv = "b6edf42227deb14f1057b7be6eb6bbd1866e36539595753696b92f7a60d6d3a685578fd3fc4c620e9a18186c85e98dc32172ed3fade06f81ce3eeb300daa57b51a6077aacaa2712515e6904da96cd57664f19227626049fb83ef0648097a5a0e8f5430536b7dd90d697d7b1fe149aab59895c75425201cf4c735b1c9ee9abd48",
+ .ct = "96770fd18c0320ed35907940f0",
+ .aad = "",
+ .tag = "92ddef5a4b17129a8033d8e241ecfb9b",
+ .fail = true,
+ ],
+ [
+ .count = 8,
+ .key = "33c8ec9f742212136f4cfc3b11db0c13",
+ .iv = "0ba8b4d35af800db50f2287d280b49f6e0524d4b27962ed18eba3a9e08bf3b2d0aebf3e94aa073557ff6210cdfc9a9ad9023220bce993aee6de85c03f689bff0d1649d93c525eb33134352a2eebd7204421158685f3424254a60d0906b30e07e0992a76a8b5a2f032b07b44e28b3188f7c9c3dda2059042a148cf7fd5290f2a8",
+ .ct = "6b6753f0682c257fa355e6b2db",
+ .aad = "",
+ .tag = "604f2f1b742980d5f0e140bb0635655e",
+ .fail = true,
+ ],
+ [
+ .count = 9,
+ .key = "6fe5636cde41bc311f5b57e7f6e1dcac",
+ .iv = "e33bb40d3423b9973ee552613bac932df5f067dde063fb930b255cbb45534b512471afb9d2bca5054e173195c8ab5db86cd19d8656c4c21a2fad208e269e9e5848a0c07ab08af2c12566f6708471dc3f71fb31c587fff9f1de77f4723d35a9b7c5ba9908d03c6c206f00a79275e48159d3e6949647402a56e34af11807ac05f4",
+ .ct = "5fc5621d43a7f221be0fd13323",
+ .aad = "",
+ .tag = "aefebd284c79cc0772381fcb16530b52",
+ .pt = "e8b146acb8c03c0f4da0ada36a",
+ ],
+ [
+ .count = 10,
+ .key = "2f733532bb081f047878e2b0f1b3e418",
+ .iv = "d49b876263d92c92d2b8cc4b35d630ed32929f7a2c5e0964857049b8c3bbc9fd4dc249c338694e203a690b6bac05ed80c9c121e8fdcdf6c4a7782381cd80c219ca15b030ba41e30d582f007c90f4413e8718b76b161368aad970f01a7f266c93b497815477bb064431ea90d09f39656670488b09d09568d49e7f8cc3a92c21a7",
+ .ct = "26cb206c7121124ce0872ac610",
+ .aad = "",
+ .tag = "cfabad86e311fc426e79a40541480eae",
+ .fail = true,
+ ],
+ [
+ .count = 11,
+ .key = "99f988dad0022edf961246e479e1f492",
+ .iv = "49f50f40c97bf5bbf40ca5c8193255d9f9afd71072bfa18943d07cda87158e99a230826f4de31fd384406a171dbc00f9c849fba36e2806fc12b41893aa7702c9beb385604e5a181d37a2e05cbb2ba1c0d235bf58d50ef514ba4a7b21361a5dde8261eab8b497a8fcbf53c885b326fd4b104cfaa96e715d54548c9844b29eba4f",
+ .ct = "376e843bba8dd5e52edec428b4",
+ .aad = "",
+ .tag = "f4dcf3a9176274ef9ba1a26dadefe702",
+ .pt = "2150e82871cd2a234ca534b046",
+ ],
+ [
+ .count = 12,
+ .key = "d2bf706e901d74fd48cce640f3237bbe",
+ .iv = "5b025187e32c376ce8576ed503de660c3c08e3155958c5943de4a91ddbc6e534368b94bfae3d9a24b68a17b4ad901a0f8f8929c4ad5efe300a42d3a6a849194984bc5600c4faa2534223df76adeb75561303bdde342c126a0740b912d63a9a06a8bd51559c77bd8d34ac2c21adb95bdefba1cca6efe406e2a15f349a941cd7d0",
+ .ct = "7907c6626a543de19aa0854b41",
+ .aad = "",
+ .tag = "d01de6f639aac35f6114761f8d0885a5",
+ .pt = "1526b5ac14846289f78257fbea",
+ ],
+ [
+ .count = 13,
+ .key = "1bc6a266142fcf5b5dd4f94bed62604a",
+ .iv = "6af3a6e7a8db3e07ce3a902ebc177cfc6822dd00e8e41baac8f6af893c9b3fbc585657ee1fc6d8ed36a95ae5aae997322b17bc20c201abfdc4d13e2be929ac638f5220403aa70b3cc969a18b3018a80e8fa81d46da8093ebd04f4e61ecfcadb6bc090e7558a5251dd6ee7aa1a9f66c9a20db56473c0bcfb2f630dd2c47e5db11",
+ .ct = "8d7ad700e020828caa2269675d",
+ .aad = "",
+ .tag = "d9ab1848ecec748d03f4770e5f98c062",
+ .fail = true,
+ ],
+ [
+ .count = 14,
+ .key = "cd9c29362ba0e8f58a3dab6b86665705",
+ .iv = "1ba93aff29458466987572eb69d5070ab9b4ccce195da4b37bfeef923c0d256b29325f72bb360d577b5098db7a57d55f336acd7a4ec4385a6e72838c2631857cf482c18d67b850c13128ed2843ed5dbbb8691f3b29dec6147eef0463189630c6745b1e9c75402b02a44cad62cdafe42b391e310bd1dcb410f04ed1e2198d0e2b",
+ .ct = "0fd43ee780909085d19dfc99fb",
+ .aad = "",
+ .tag = "2818d6fe743bd0f98f8aed7500da7545",
+ .fail = true,
+ ],
+ ][:]
+ ],
+ [
+ .name="aesgcm-dec-iv1024-pt104-aad128-tag128-key128",
+ .keylen=128,
+ .ivlen=1024,
+ .ptlen=104,
+ .aadlen=128,
+ .taglen=128,
+ .cases=[
+ [
+ .count = 0,
+ .key = "1e9a164294cd12d27226fa70843d61f7",
+ .iv = "7e0e208ea9594d6bccaf450139bc2065fb6a8f7bdeafb591d169f881cb1d36ffa7b1333ec60cc938d3495761f7dca42f05a51f3adab6ecb3e2ce13d8367713dc2651715a203a7d6b8c636428edba4308720556e92ebb7dfc580d196751ebc3ff7b62ab84b066874c8c2ab60c861db31336df3ce481adbe2d0687e6be22180000",
+ .ct = "0a04d3368a3f7518fb981dc88a",
+ .aad = "2800afa22d8cff673ffa8de569cb22b8",
+ .tag = "97a26c7e8ea6167ee830c6d934ba11fb",
+ .pt = "6baccc31ad52bced06562fcf08",
+ ],
+ [
+ .count = 1,
+ .key = "ed641adc865baa0156d480038522cfd2",
+ .iv = "a59c591fca8228a05012d8d02023361bb5332c9b39169bd9f94fc7026c591dbcd90421868e476512e48c550bffeb796278ffcf19056fa7c473f4a5481ee7b2e9ce6de428e1ea4dae76298848d13f21cf1602d6e100314c2d84f456cece7d00fc3cb0cffbf70a6f0f538844d2cedff7c3ae74e213a236cc0d22281eae446d4f69",
+ .ct = "3d2134bd30612cc83828bf1ef5",
+ .aad = "ee8cf287560f70b513f40d0ea8b30c40",
+ .tag = "56b21ebdc0c98f01066f96cf85e9c6f4",
+ .pt = "4e4292a10c12e9558ec5e6fd49",
+ ],
+ [
+ .count = 2,
+ .key = "e51e4031a35a1096e6f3dfab1f943e9d",
+ .iv = "da84a17315e4447b3cba43dfc87f56227a6d6fdd9d7221e9b76fc20feb90bed6f9d07a1f320f4ee6a0e2d66e26fa9d0f6ed4e30a47b1ab6620f19a0b84bc6a0d6c03a9d7a154f0023846eec8f6653eacf88bf8be33efc9294477c9555f76f39335cf7a645323a3de4bac41bc36f1c87971814329fdc644225f7f65be42ff7177",
+ .ct = "16e5cb7eec67407c90c2f6ff1a",
+ .aad = "dd33e39f1417188387e4e6ce5326ecd7",
+ .tag = "75c3dfbc1495058f7dac6b2abe8e13a4",
+ .fail = true,
+ ],
+ [
+ .count = 3,
+ .key = "58ce5714f6da3eb3ad6b46d36083b699",
+ .iv = "84060061bc5ce669fadb7339f785f45eedbad18e4047989fd63ba078b3a7ebd9d81a896c0b48e208ca79e123c7e2e3c93411c96af97ff9fa485624cbf1f3657a40ab96078e12b95b49d71b79e8d9e2efaf93f288b3ae2d263b270ca06574cf4a5ce4abcc357667a8d5f000139bb74cabfcb7e3e9a991074a2e5ce7863771ed36",
+ .ct = "4f68dfc5de9fd949093c350a6e",
+ .aad = "6073bea7e46861b8a5010a6658fc0793",
+ .tag = "b5a33d33c56ba35ebd5f9e18206743c4",
+ .pt = "e2f8cf5f794e749caa3aa5ccea",
+ ],
+ [
+ .count = 4,
+ .key = "b82c585adeb647808c6f15508587231f",
+ .iv = "12e8dd3847ec2b7aaedfde869377f07b2d7db79f973081a98d6dda45611cc11ad03c9049cc3a036e83c79ee037582c8bac5631da21aec2c2ac484be0308f69ef6732b98bd5025205b99e61a272f76620262cb13d8cc42af9ed1b399b9fdc1b354c6b5cdab024cfaf0f7a4596df18c1199be24a6b749835bc7d16321798ae8ce1",
+ .ct = "665f97320a31c60ccedd9ceddc",
+ .aad = "27338714cf6ce915b2ea78b0f9ff119a",
+ .tag = "d33370fc5e066682057af53f8486f542",
+ .fail = true,
+ ],
+ [
+ .count = 5,
+ .key = "af5cbb5465125cc642af54d0800f2fe9",
+ .iv = "9455afad34268774451e20cf1af510dc3227edb85b2ee69f86b292e0c0d3114873b87bd0c92f539434e69ebd9b46847e5600be8899daadb617b5c94d78ec6117c4fcab7210331bc4bd2b727d561d7fc9ad8c147d67a1d0315402e479901201cd9da7b731f585240035890c30b94efe6257faead32ecbd3a027979403f5c5201a",
+ .ct = "6f26d5e98322bc90422c7ea2ab",
+ .aad = "5871ab06d242c4f3359fbcf7930afdfa",
+ .tag = "2c4daa0bb54fb60d905d65b6b8733b93",
+ .fail = true,
+ ],
+ [
+ .count = 6,
+ .key = "832869906f92e519f9e98547d329c061",
+ .iv = "bf7a6ff21aa7b1cbc8fd7327e31b39295cacb803e0b8e1cdfaf8b173419c3923e735e23a394f3b2a34230bb8979ccea9c1c280fb6195ca688a2bc174b491db26308f13b9b1b1f312cfd6d23fc6a11632d9475bd63b8e5fa543879206618d992845d0f93e55a8aea6e6f6012f3a6850deb2de38974bb848079cf20ec0c47c58e2",
+ .ct = "905c26e3092194d2e761753ef6",
+ .aad = "40c6cf17fd6c809417d29dae3b8c8a05",
+ .tag = "6b7d43f184486e4cf188ea88fb5f0e7c",
+ .pt = "ca27f9967d24cf76f6c5134e4b",
+ ],
+ [
+ .count = 7,
+ .key = "6dd4a58569db84e6f10ac73ba48eac4b",
+ .iv = "4a85ece230e29a2fad91970e8c6002da4ae268cbdece4974e69dcbd1f01535877b7205d01497146f4c629a2d5b610031b47f41ca7404376da6a250407e969239b4c2f78d5c98e8f14ad276642151bb121c7e25fe77b4d715e8efb1d30181975de97ccc55dfed3b869a6db271b4c4f645ce4923e67486bd26a8ffa4c0b00eb41d",
+ .ct = "84ee622bac7dd1524945e3746e",
+ .aad = "8dc3b4a1cf171ad302d950adc5368e88",
+ .tag = "dc9c091e6b8062d02e0a597e3c8366f3",
+ .pt = "1ca12d3f079a38b73c82caac8b",
+ ],
+ [
+ .count = 8,
+ .key = "ed9c1885ebe8c001ea19c91c83aac3a1",
+ .iv = "2732c8aa9f86fbc4d2c6cd021740de2596f25841bae8ff15acc012df1ea908718fa5871087d0aa8a53e59281185ef5d1ae43962568cd58ae071fefa1fb8cf5c35ef93e5039d66d69ee9f90e00b16622b8a76c6b69acb442174cf7632af44b7ed6b395b6c2eb3e37a2bed5484e63eb382552c4109fe4eb01a01350518fabf4b96",
+ .ct = "dc8b34c4d356c8cc008c581df6",
+ .aad = "396229df88eeed89b63432d73da25859",
+ .tag = "ae97854091d70fc764d0c830187b6174",
+ .pt = "79044700e7be4a0d49d6f79b7a",
+ ],
+ [
+ .count = 9,
+ .key = "360a979eb347195eae750e035f780bc0",
+ .iv = "0debd79fab28f0e06ac57daea6303913c3c9d91ce9a01c088ed8d05ac3ece2c3a3fc78e21dda7f8c06d73880dca6d9bb9a9ba3ff4e9c7ed77ec850e14047216b3f2c07f20fbbef871a6803ef35c1294bbec0d04c903a58e4defb711422128df1b38a50b7e52b0953665c061046e41efd4855251f467cab36f4b63355166c99e6",
+ .ct = "f6d251d0e4d4729df5b8ef217b",
+ .aad = "01773a6ab916d647c63db5cad00a7c2f",
+ .tag = "070d025d999a01291e82d71302ea1825",
+ .pt = "23c6febb5b4eedaa2a5008b71d",
+ ],
+ [
+ .count = 10,
+ .key = "17076afcb2c248319ea6a15eeb42cad5",
+ .iv = "8148865e86e1eec0176dd36bf214479bc25c4b64f96dccbf90c325bf50dd27004e66c5c2576f9f87c96393301638685479a0bd675cc8174af9bde9c760e43fd2ee2aff7ec7ec3d2141fc06d9bac8bb336ef184f2330dd7da7e0433405fe31bfdc009a00f23f281023c63fbd419aa1a2582b50dff2d1651f376f03d00a0278b13",
+ .ct = "647e8cbd75d6bed8b7ef7e2f9c",
+ .aad = "ed64239c5d82c7f99a26910757d62816",
+ .tag = "f709b63443915cad46056232abb3f5af",
+ .fail = true,
+ ],
+ [
+ .count = 11,
+ .key = "f66089edd30a100705027604aaf5e39d",
+ .iv = "210afc7eb80562e3fa668d1700c49b6dc8aa9a20d31e76ff401facf72caab14e26681453081ddc2a4e32e71cc36ce48df81213db3c96f71a9ddf724bbb49f98dcdc0fb28ff9f287d12a8e398ffb8fae6dceee86f47e6f70cb159170189c3b12740c3058a1d5082e15c816d757c5ecffffdea11bc32d8c5c7f7aa91924c6c7099",
+ .ct = "6c7e9e2120e1883bac938d9201",
+ .aad = "0f068b59414e6a5acfa2eee02c373b9f",
+ .tag = "7d85dfe1b4c1b00af6456d8ae6db927a",
+ .pt = "2057bb2412b32cf405246f28be",
+ ],
+ [
+ .count = 12,
+ .key = "bf8c0362e0dce080fafb0bbbd5694b71",
+ .iv = "174c854979e4710595a5f73589d6dfae9f7368ab1069925822c6e6cbab75ddc65e55b2473b854e2f3af18b2500faf607420a1d4a9b39545f7372f53ad7116f4e8e32608f2eea10854754c706eaba6dabe761a8f24baba10242c84e0d9d571e849484882782df6ae526c7176c6c62289dab2c6cfc6e4fc318139c8b57a376e77d",
+ .ct = "f0cc4e2c265519305f1115e207",
+ .aad = "1385ddf4883def8871066753165999c0",
+ .tag = "acb508d052b536c23945cc21cd369543",
+ .fail = true,
+ ],
+ [
+ .count = 13,
+ .key = "71787bb0de9ff8e0bc44f4767c151c98",
+ .iv = "413e8e047bd21fe56f12eec2b18757d790a3c4ea4a9efccf5d25ddfb683b97b2f22109058057149f55d3fc9a42b33d64b3ffaa98a91f41051f53286cf598f1a2c4deaf8667fc39badb36456992db2bbd6782763d1b1a1885a2a5a0575b90c74c29445dfa4c37cf3cf75f6adc2362826928db1695c3d6b1a826325c8b4c054614",
+ .ct = "772706423c74de6713aa75e55a",
+ .aad = "8caa6be496f84a0e46d44dad7e3b9efd",
+ .tag = "b3dc91e7e45b9ae3ed8240381198bc05",
+ .fail = true,
+ ],
+ [
+ .count = 14,
+ .key = "770c746d8b94f64c0c0f42770ac802e2",
+ .iv = "01fb28ccb2c2544593c5f77c8bf293ee629d6d7d50ec293cc326389220180b97fd20649b7a9ff19ecf082eedf615e76aa8016afd8e767782a456d534f407889fdad166ffd7a478c84b226345eb2eba75b39ebcc3673788ebd3d52b6ca2b382db08eb20501666b4f4a758f88e7750c364998ca925a5f4d5cdc723f37155f6bde1",
+ .ct = "5853a41ca0345cd1e58a7f1991",
+ .aad = "7cb1f6735ffc7fccffed6c0660c5b0ff",
+ .tag = "e075c0af3339e7725489fbd796937c13",
+ .pt = "c02d4848cb060cff3fbdd394de",
+ ],
+ ][:]
+ ],
+ [
+ .name="aesgcm-dec-iv1024-pt104-aad160-tag128-key128",
+ .keylen=128,
+ .ivlen=1024,
+ .ptlen=104,
+ .aadlen=160,
+ .taglen=128,
+ .cases=[
+ [
+ .count = 0,
+ .key = "1c49310998b3fc40caf148e851565d1f",
+ .iv = "3775738a15794e2f06c999a8bd92d8a844c936af258e5b6ed5c8de0ce22d0bdbc437b423292f690986b05f09ee773e74fece24886c5bb4a6f2734ae4f1a5b2c4943892574159e9e59196d1acd6cc5dd0c487166d8fae9679f73060393832c53cfb6c11ebb8ff24458a130539578dec9534983b5b59be25cf563560a9168c024b",
+ .ct = "fcbc52c05aec1b847a1e4c6668",
+ .aad = "2e1e585b4ab8b1bac9dfe6db2faf5b2b0c4ceec2",
+ .tag = "beb786796a134d0a988f6356955e5ffb",
+ .fail = true,
+ ],
+ [
+ .count = 1,
+ .key = "72c27eee8412ee2d8dc3c658a86efdb9",
+ .iv = "40005d5d49840e387d991564a0541eff65dbbbf63b49dc95f1c0dd5a75534dc53afb63209b221f20cbda451f0c1ca225ecdcb98171f0acbbc0a3874db8fef8069f92fd31cda8f9cad1c025eeaa7a002e420452774881a17ea675f868d3957a6963909b2bb8fdfbca7276879878ff21a2ccf4a7778f424b4ee624b4adadb691a9",
+ .ct = "7dd555221342de55174910a7d1",
+ .aad = "05bafe771fe69310cd8f7afd93e4ae3072d1e5f3",
+ .tag = "c35d030e7f11926f13ea8349872b8d2b",
+ .fail = true,
+ ],
+ [
+ .count = 2,
+ .key = "303e7a63ae3fde52aff86d007206e4db",
+ .iv = "14151e61608a68b723c5a1920103e043d7c7437ece4e64083a7c95d56f1c8bebd2aabecb263ccb53ca83ca01d72302d1099f4434b87d1bd66eca20e636f7a6545de3776b34901422de3d07839941fbc6c18fc7422d79f7013f144b17ca6ad30e6075b925f5a2ccde05f5aeb3ad5fc8013267314a91ec516739888819196cedad",
+ .ct = "35e233476257044f7842c93df5",
+ .aad = "581a1ab719a6d27ec704679b5a7b5f74a285879c",
+ .tag = "df0d1028474b590a8bbc36a8226da883",
+ .pt = "b040b6333dbe87a6fa445afff5",
+ ],
+ [
+ .count = 3,
+ .key = "e45820208ea49fcf69111ea14f278414",
+ .iv = "bfb45713fdb20a3714a201a3e34fba621be1fa2849b9ec6643f45a6cc6cb8060129f1148972d1a0f38fd7e365e2e6fee1cc390a1879872784e0a3c65d4ff8ab8f1151e7c7111551da82421ad7bf21996f4b1ec601fc51f7e0cf59fda6443fbd5bd1a0f67629a95be532bd9f389a8a8b05137f109d2e0797f574413ddc574df04",
+ .ct = "13b2058b2e75478c814a3f45ac",
+ .aad = "6735ee4d82b65a158210d6f1fecea4524ff6b1e2",
+ .tag = "4ffcccae30cbb8975698b9cc52d3f776",
+ .fail = true,
+ ],
+ [
+ .count = 4,
+ .key = "4b7a6ed8cb48062e97a28e5d292abae5",
+ .iv = "0a9479d78c275e408af3d22cb27bd57e162b1bb49d3da931f85d85b5856138db7993a35218cc514e3629ab54349b13a3d52b55500be0e788b75e7a6258a4fc00744ad32a0bfb20ccd75f67e6f5972286735496febcaa76120db6e125b794915750c0f4b6a9da51110cbed3f3488879a33f72dce491d174d7293f70180ec44a28",
+ .ct = "7c26575ef5a4bd63f9363b68f1",
+ .aad = "26e760d53f1b9f222d4a6ccb206b8c6fa400056d",
+ .tag = "13e4c11533afec7c3d5533cec1cf2d23",
+ .fail = true,
+ ],
+ [
+ .count = 5,
+ .key = "c9b411cf986590954418ceb98f328f7e",
+ .iv = "5cf7480a588d12bbb51dcdc3c415d0ef57c08859d5f2c730ed5c201dc7c3ecf2e91bc131a35e6f77d19716bb98f6733e317ef4f1e15bace607929a52c9d16ee35668b83326b3dbd09d32ac34a18c728ed3066c6f8118a7d23ef5a8809a3be597bf565e4c8aa3f004c16c4a7d6db1899b12ae53742c1c4cadf430d1173d8619f1",
+ .ct = "7800a18530b547c294a561915d",
+ .aad = "48861db87616193191a44b5ae2c7fa213ac725f7",
+ .tag = "f4139f0bbc0fe0fa4021353f50c37f49",
+ .pt = "ac40d7a4b83c19339a6415c6a7",
+ ],
+ [
+ .count = 6,
+ .key = "137a17a7d68ea8b09f21ebef32f54f44",
+ .iv = "bc99099293cb8d7a7659a50b892e66c441b73ad2c0537cce845a4a4da15b873024e205092dc5ba61dbaf9400c2b5d974ef7bc3ea121553c5d42c6222abd77ceca7211d9a0d88b794660c3768b421e2beb6be7e6ed834e7ab63129f83af108883146ad45acd716ed4bcc62a2ef258f06d7442a6d5218836575dc630ea0bb33d5d",
+ .ct = "a087b2215639bcd8374ddafb05",
+ .aad = "8d9f6827e4a4bb97676a99eca7d5abfc5e17188d",
+ .tag = "a9436be05f5b60c877b49cf1a5c291f4",
+ .pt = "bb3f1e8ccec1a19653e8b73a5f",
+ ],
+ [
+ .count = 7,
+ .key = "95b413ef38966aff9313963bcde0895d",
+ .iv = "a83c9b4897a31de2989fd13dd9ca0094dc501d96f26677d0fc6ec2b780eac80e9ced1fe546cedb27aee3902be0fd5c9153bec07784284ea3dcfd2de8548ad84298a7e6d9afeacf71fb9f47501112023e1b7d838945cffac3d37f089772083586b679347a7d5740e540d43db4045fc8f37c7d77486ae62ac07ff36966e12e5385",
+ .ct = "2a9033db1c29c3798c180a8603",
+ .aad = "09f796e61de37730a5ec02caf6441408d3b50675",
+ .tag = "773988d58052e5072dd4524041e756c8",
+ .fail = true,
+ ],
+ [
+ .count = 8,
+ .key = "b773f1e167c1e9c59fb01dc123da419c",
+ .iv = "a6b8528fbbecc2547afe16b4ddeb4b724c4c7d2e638b7dc55b3ecabdbcf49848aef9c643340c8c5fc2ec11a78728ab28067a0f3c407f454f6d2bd935976c491d9a1dfa6e4e9160c2a4bb05b881ee2c64f49f24f1ffe14af062718ea0c8116abe7591faae5c43938ffb5bf428795b5c5afa5daafa623c6aa3bb054ea202aa88d0",
+ .ct = "766bc6cf0538f306aae18285de",
+ .aad = "377eb1a6b62b2e891ec2d696d23b0d6e69b7c067",
+ .tag = "cd039d59cb3f0349136b8196b4b808b6",
+ .pt = "6d8efdf3929d8fea390d5a6405",
+ ],
+ [
+ .count = 9,
+ .key = "549d57995b57aba56ecdc42456b12e91",
+ .iv = "8aa259d2cabee29c411cfcb1d16ce9c04ad9ae2538dc11d57287ff085dbb452253b7e94c2f0dd8eb9d78982b6fa8e2ca2329d40f79a85e81253826e2dfcb52ca3fd797f8718ff75679b5fdfa678641453d47d6d35d82560dde0108169ec18c2f424d74d9856a469f50823d3a95b2f23f5fb27e1b25d3dac43fa73ad1c4687a5b",
+ .ct = "da20110e880902f81b1dcfa1cd",
+ .aad = "35c2a0dde6f703cbe595d14d826927fa1ffc33ae",
+ .tag = "cc11837b10642cf6e6b04d3695699879",
+ .pt = "ed8f1d49eefc715ace80d8c6d8",
+ ],
+ [
+ .count = 10,
+ .key = "fdc5ad2337d1e5cae1c5a0d27d8f6ed7",
+ .iv = "e5d6a2d502874aa67e333d4e3fbeaab72954807da5496d66c7337e3c41935c82d1ada69b64b87e2ea85517080943316318c6d7feeb76de8fdced38b1ae4a1e8da144ecbf56e67abd4f3f6193eab8eae11c2490a698d1f84faf77677ad20c735d908cf14fc243e50551175ca2083926376791e4322a72008c897e6c725c045ebf",
+ .ct = "8e1d3b12b34cb5ad283155242f",
+ .aad = "17df36d04a49111795676124d717cf838025facf",
+ .tag = "61606958e10abee38808b0ecba4fbddd",
+ .pt = "b4dbe1d21eeacde59a1f1a7587",
+ ],
+ [
+ .count = 11,
+ .key = "1cfdc694eb3e2042ebfadefb69e91b36",
+ .iv = "803a3b1e79046a43567123a82270b61f0e1d8859ae1d9d6e3e579d427fc2f1be4638dea1fce9f84008f179e0acf82710c19bdabebb9f8edcb9a291db1c16d7150b56705ab7ef0b05dbe6e422930d55551ffb15c6bdc2b4fa1d78acb4eef7c332d6c23ae1ecc00fbe40ae2097347c442629a23fa8cc693db6e4f97bf123dede97",
+ .ct = "a8ff2c49fbf91560a717771bcf",
+ .aad = "37bcb8348021ca99dce93faddae7a0feb82e03e4",
+ .tag = "55834ee0b23056f0b20966c7990c491a",
+ .fail = true,
+ ],
+ [
+ .count = 12,
+ .key = "f8f5c3daa1b7972d5c9cffa7812fd32d",
+ .iv = "7cbbf899b5b08fa19ab781d8ca2b9787c0ea9511842bc02c56afba33c6e8bb26466965344c52b02e71bcdc2ae8e72fc74d71c0c47c9d1bf632e6ee61b729ffa2e746d2777f32c0cd13c6e22fdb426b74038bed40f816acc7ca77793442838e4c045ca1220c870d4342544d2bacc03181ae0745d82aefaa30b1f95e72b87f0806",
+ .ct = "c84a9c5f75e8a61bdae66c99b6",
+ .aad = "68a58b22922bb0a7244b78025a5ebd19e53a3646",
+ .tag = "bba530d8fbf7c96b3e008cba0d9a431e",
+ .fail = true,
+ ],
+ [
+ .count = 13,
+ .key = "041abb42fa998ee8aa5d914e26137c33",
+ .iv = "01040454d71aaa3252804cb46b0011ceffd74c25471bf3da879d0ae2a8dc25f56315aea14e5bc366d4bbc1fd742423ddb979956c00c4803fdd05d66b48b1e37a28aace4bb7213cb4738d0594b5d63410d6dfe6c35a306862d8960fb3e5d98b956eac955b81cd40a233441e2a026bb18f8620aa93d7347fc7abd33b0279992af4",
+ .ct = "749cf0bf6686887a393257172c",
+ .aad = "e8928d0a9b79f5f24d85f3089fefe6c50871aee7",
+ .tag = "ad4eb7d65ac6f6f3074da3caa1e8df9a",
+ .pt = "3a39603484fbd29140898774ff",
+ ],
+ [
+ .count = 14,
+ .key = "6e4a51a013047d2a1fc6717d2cca75ce",
+ .iv = "8a37d4356c26b0c236baea6b0bc10df79766fd6e070d8c3347609a0da732994695213a148131984c5ab44ff73b449dc0d22d9407b1e57e7da102f9cdeade36dfcd90242cd40c5eed47fb4507020b9decbfb23668ee12cb56c2470f355d6dc15890d1107a660d041fd0c1cbbde70171de0ac0c9fb985d5816bb4b1faf414f7a76",
+ .ct = "a82bb60594bd1d087026d348bc",
+ .aad = "fb664176fb108a7243311d38a44ee6b98f738e8b",
+ .tag = "b3f22dcb000fee75747825f78f42502b",
+ .pt = "dd14bd0071683bdfe34d26c7cf",
+ ],
+ ][:]
+ ],
+ [
+ .name="aesgcm-dec-iv1024-pt104-aad384-tag128-key128",
+ .keylen=128,
+ .ivlen=1024,
+ .ptlen=104,
+ .aadlen=384,
+ .taglen=128,
+ .cases=[
+ [
+ .count = 0,
+ .key = "cef6132b4ca0ed010f2c6e357bf3e985",
+ .iv = "0025a541a4d257fe92540cf4a42bcc6112d0726e4ef0d99da95e99514bf5750ef5abdd830e443b91abb812aa96051f7f7d2f6c03b2beb7ed69e1c27f78063e59e5f61219e631e4e9fc3341f0e0f50f1c534365dc8266d960f7d4169fbfd296c619fd11a500267326ca752bf5de7cd534b20738c3d671f885925cd49ae304e9a6",
+ .ct = "eda6ccb8eb241cf859a7dce1de",
+ .aad = "e9f8ad4c0be5d0935633b2e13ea0496689dbae4de73f28fb37216a781c3e97d841342df095c534585485fe200e78a80c",
+ .tag = "901cd6ac5c61014ce15f9e670d1efa9d",
+ .fail = true,
+ ],
+ [
+ .count = 1,
+ .key = "5bcf9098da8e3bf5e4eed0d8ad052d90",
+ .iv = "6e22a83f51311e75ac24546e8bd687687bec4bb08469395ed7204ce8e91834562915443a926f7ac5b13455403c7b7db02b3619ecca7bc893ee232502c33726b95154ee99785f48a8e738ffc57f751739dac207bdc25b8825fa3f92e8f05d92864090bd8b1a767e4ee388f0964ae747ed46bb5c57337368ae64f8c84019deeb3e",
+ .ct = "6002291a34011e145cf7d8fc5f",
+ .aad = "c9cf7964e2776207323ca9944e9e29e6774a716de5fc9ac2add513d2aa2952f3134dfcc57dbdaa99bc547068ed707e08",
+ .tag = "0b262afd2ab0ca574ba1792b408a208a",
+ .fail = true,
+ ],
+ [
+ .count = 2,
+ .key = "3c74ddbde2514635f5420a21435fb8b4",
+ .iv = "0dfb30f158fee0bd86be7d56a14b6242a9c46c4f6fdc19909be26e24b21b95a74108b22b4f3ac0f9c3711ea49fa50cc69d4388de590e1455e99f7e574ad85aa53836375999a172932da53320581e0feaef90887fe4cc9af80d2700c11f89eb4bbbf765bb07b19ee1fe4a9e4d1960f51293e24956aabb7fcce6574007667f4854",
+ .ct = "190ae27e69fde2606102cc5bc8",
+ .aad = "2465cbc9c6bd1d031526fb2e6886bc729fb59589c6c9bb0c3be5bf67427b90499833fba158e769af97f1e89d23f21943",
+ .tag = "fda8f8dd10302b69df240a74eb3435c4",
+ .fail = true,
+ ],
+ [
+ .count = 3,
+ .key = "85485837d0efb6816c261dd413a1aae0",
+ .iv = "f13a6ac4b5eda75bfbf488a63aefe9470279159260dda958b31f9b40861a05563028c6c530aa519ad682d420b8078b94ad5773d348f3f5c45ab4603fde4d7e8e21f0f0611e86270dfb290d96a40c9be84c91c88c484fb744dcfe564009f83ba36f93174f6cb1a9fc9e7851a8dc4003e2ed811dceed1c7c65de6398b4e0ad3323",
+ .ct = "908dce37099f00fc3d080120f2",
+ .aad = "baa7da441a4c70ae219d887a91fa42e5cdeb6940d86011700e73e7df5133554316498d0c8698c97e99fbd16b84e5e6d4",
+ .tag = "04492ed30aea983705e454fe465106a4",
+ .pt = "f23d1cc0b692d2c015e5916c05",
+ ],
+ [
+ .count = 4,
+ .key = "66cd25da79ccb19c6b91dc83699f832b",
+ .iv = "ee4a4e48beec361ebf5307c5e1eb0c78eb0dcf4cd7c85d58b8b1416e586d3a1175555a2077d80f12d8d6ed7b1a2fd7a8b8f4dce6b7bbabcea0343619e932f8447c3b444b3573783c1bcf3ecebbdd386314ae170b0083f574f4283842fc8216dc083494a9884054796a95a5944c8edb819883e0b139cee539da58a06d7b38880e",
+ .ct = "d303eeb8887db5e2a3477e4a82",
+ .aad = "9c50c99f5e8483a99f553c10aa778a160522d11a74abc14a33cc19b6b5a11c6e0cd95fec79f710c29d66f856040ed3af",
+ .tag = "99d20fb345f93950c07d8882858c0d24",
+ .fail = true,
+ ],
+ [
+ .count = 5,
+ .key = "31998c38c5e3fa4ff758d20fc32849e2",
+ .iv = "578a421c2e723abfb392a14dd203fb6c918eeb9391605f8aee0f9ceb8b81cfe32c3685475f97278a32874fefc810b0e94170ebdff2d98bfe5d5e8d246bb08bca88abb4eb532e6f44a6bd781e339b6ebe0ee6d37dd6d952892a507fa422ec1048e6aef0bf31803b363639d4085b33ad0cc2f924819fe264235f58862564b3c7ab",
+ .ct = "7547808c2044f79a8120a99bff",
+ .aad = "1edb5a3063a39baf37d1660ccdc23769a594942574bcd43c3907ed73357d22c63511e174cb0283550d497dbbb147d424",
+ .tag = "fa67550ea264c196a666c41152cb8fd1",
+ .fail = true,
+ ],
+ [
+ .count = 6,
+ .key = "da5dd0603256be9731d34fe00182ee8c",
+ .iv = "106f89477e8fb83cc7d414299c64440f6f995953963bc0eaacdac435f75b8d6e5777c1db7aecb4184a4cde5eb7decde6be6acce6abfb4d97c59ada321a946094dca132fb98710d47313c3d5d47f4e4420562c689c3bc84248a08fcceb969642efed4d5ed9ab2906b64481d3ece33e770f47d9de0cd85362c5e00bb2f140090cf",
+ .ct = "ee2a614e5322fde3a13d9e281c",
+ .aad = "2207fe0ce57b67bbec2951cd7002a28d752fa0b7438c06c4670a60173cf4dd2485a5fe0b0b838db18fa70122dff9dec6",
+ .tag = "6e540cf0ede05b4a2bf495b079bc22ca",
+ .pt = "ab266ee3875096e2652041096f",
+ ],
+ [
+ .count = 7,
+ .key = "371348c0ba6c044d3095afa8584acd84",
+ .iv = "a69802b9bedf0edd6551faa98fe9b4f95bf284a34085de89e1e1bc023ded9d31624b07ac0b88af691d258bf259773333dd464ebdc7dbf9bcf3dc765755bbf0f1ce7fec0e7db0ed80cf24d7d7cac0cfb61166639e4ca0b2f7ebbff722a895fec7e9569b45545c0982da3c2c4d9fed8fef799443666c0baeca15290ea207ae4ede",
+ .ct = "6fb7cba45883fc2d6747267330",
+ .aad = "48258ab3deca0779250dbdb7a8725e863501ec96c2b2be7d0dd4e7871ec21e0d3d62061a3595236b446250ece2946566",
+ .tag = "33e3bd9c9457d9545f98d37fc9ce5343",
+ .fail = true,
+ ],
+ [
+ .count = 8,
+ .key = "35891821a1c343ba6b36c8bef3e427bd",
+ .iv = "466dae12770d64cc9f4f939f3ae91df05997093890d3c7e0fe843e0e6535620cc31a797e1bf81b95b22399ac4c4746f189d693595b2892c38d358a39f608d7bec5822b992e20dc7b77c11a351f10e43c2325a8b2c6cd5f61c508d85297b4f48275a15b68d48b029c858201cb6c839cc94f12ee569c7405d58a08bfcdb3db19ce",
+ .ct = "a99579e19a720f283398341dab",
+ .aad = "1e5bcbef08ed59fc7554cd7551b2bddf576702629af96cef3df8ca7688afdd87f9e0ead4ed054579f54e83d5bc3b53ad",
+ .tag = "cdbc41011809973cd567af683023e509",
+ .fail = true,
+ ],
+ [
+ .count = 9,
+ .key = "52c7659f1721bc5a4533c989572ad465",
+ .iv = "f151dde632ea1d499ea62fc2706627f412a790bf5c7a6d01a75792d26b4bc159ee8a035f26d84f42c6df63771ce881bbf9bb39ca7b29cbdb716e7c0b68fc837f7755d27e3eb36f09f48bfa9ab5bf5c2196f0de431d197783a8324c2ce8a6c4b963f5a926f5eb5f0b6625661bfdba45bbe812c50a40550f1bd92f08c4be856873",
+ .ct = "11b408c98aba33d91735143da0",
+ .aad = "3c17b0fb7d1b911a5f345c5c2d79db63af5fc7fe36207a676c377c5d5d8d9970ff2babdc4c0d4da9cf9ba69fb46a498a",
+ .tag = "2820bee220ff980ef61c2011cb19d74c",
+ .fail = true,
+ ],
+ [
+ .count = 10,
+ .key = "370b215dc83d1f256c82d877f52f3165",
+ .iv = "0fa34aa6ef6bd4865983f7c0fb3a58e5d9a8a6e1f809e1f84c3b374fd2257fb8d7ea378f770dd8c0665c85429d4e1caef7f86172f08a2d7e8a0d8a382a77479a94d1c2fa768ac43a3b54a19841d957ec1d0ed1290f9cc471bde028b79150027cc927679fdf09c7aa579b0ca86e818722dea8ee965bf8d5bdcc8bd4fcde1a5de9",
+ .ct = "85d0295290aeb2402825402b40",
+ .aad = "b437cb8284d273eae02e4c59e21d3897fa80111f54ac530ec0936410570ee9f9e71f0ecbccf4cebd91a4be6aa7c06d1f",
+ .tag = "5077fb4f99e5f878584c47fcc694ef34",
+ .fail = true,
+ ],
+ [
+ .count = 11,
+ .key = "fe750b585c9ae880b267fadce5e76ded",
+ .iv = "1c86c469bb59d9f5c5edcc680490471518c50cdaae40cb7385254296a3634539ace0c2a31a951cd1dd612fca272380ee9ada533536cd67dff694aee7a2a8f30816a5cb375f58c3eda9a37bd8eed00867ca1c793fdb5b852cce503d7c0f3efb46b6a58fc766d7a741c108c170b6b9acd76f4a044d45b2b712b21c2e760f70cc7e",
+ .ct = "90989ba2e691db35f055325987",
+ .aad = "ed00b4e9a840912f2f7e14ab4781867b6e28d6804fd3364ba12c54a23d4a7760bd0e1d87833a039baed868ea37875873",
+ .tag = "e899a0a9c3511e35e6315268e98f6612",
+ .fail = true,
+ ],
+ [
+ .count = 12,
+ .key = "8f29d40b09829ab8b5b6bc21f784e31c",
+ .iv = "7ce3712331c045599d3e2ac6717496f57ecdfc042c51c05389f6339c3f656694cb44aec3c8dc34338f7c9d3b8fecb1069325356c0315c0da92c02c4dd673d776f290112aa35cebadc0f40f193fa77e6d0a075194f738358713631f315a0b4d5b0174c00e9cbd11f3660213412fdd606cf0a5c8ab285bf2aa3d5df807b17e2ab1",
+ .ct = "4f5c805bc919b62847d5b783d9",
+ .aad = "30d29b1a76c597bfc09039724e743b005d7e5341016d437a6d557ae9914e18e8fe14c038b31f42247d5a293013e007de",
+ .tag = "92a50f07acea19fb429b12ae6c75325d",
+ .pt = "9fd90f0c213d85679495a2c093",
+ ],
+ [
+ .count = 13,
+ .key = "559343798d6578c83c9b3e1d8814457a",
+ .iv = "6cab8bb8a915725eebc5317c15a6444dc4dc2eef0dde3a431baa68f9441fd49c5d293641624fd11b8075495b60a1fea31f846c1e41ded8c7ba15834edb1f9ff10ece3066d2c4593bfa22dec2fa77313a82731664ddba748f015e996a530bc9219b971f367d2fe6d8b05d4a14c125396b7b4072e28758fef2b38b5e38e9590d65",
+ .ct = "3e32eab8fe6abda715e48a4d78",
+ .aad = "ea842e50fe8186e8a6657d960eaf869cdc4338929a2bf8f5ccbfd87a819610cd4972f8e9bb1225fb8c9a7e669e1cd4c9",
+ .tag = "d11f85c0cb323164f89d767b0060d437",
+ .fail = true,
+ ],
+ [
+ .count = 14,
+ .key = "957b36549db39c34a131d9343c5b3380",
+ .iv = "e237ed03cd8f9a1f9b15657d23e1caafc5905139d49ed7ff0529a89ea5cc0b68420fc9b0bbcfaeab4e4cc1ae9698aed368b7ea0afd44fd963e0d7ffe6ad48d97ef0ac99fdd2473e030f175017db8336d7af410007387b343aa106304046b5a0473f2586c34bedf39cd97ea319a18d86e586084d8ac53daa48729d0e3f406374e",
+ .ct = "2c8d7f05092e57bbf8608e7fe1",
+ .aad = "a97dc8edc5f2f0b24c42118103423cd708d657adb1ff963ed7e41ef700d81e5ff17104622b3994e3a6907a82d66da904",
+ .tag = "d53628a8296d606efb1659b0ef7f0769",
+ .pt = "b24541e1db698dde6f0fd4685e",
+ ],
+ ][:]
+ ],
+ [
+ .name="aesgcm-dec-iv1024-pt104-aad720-tag128-key128",
+ .keylen=128,
+ .ivlen=1024,
+ .ptlen=104,
+ .aadlen=720,
+ .taglen=128,
+ .cases=[
+ [
+ .count = 0,
+ .key = "ed1022a97541386191d7f497fc028afe",
+ .iv = "ee42968bb03b625b46ea4519a0c793dce51f30f1f843b17dbf910c3bd5ac3935e18515e7c162ff5a7eda471469038bbe4ae597b5ac4e09dae2ad98b92b827ff2511427a38a1cf1ebe388bbd7ca9dd85c15fb464ae1d49babb1eb6577ed4210a77b37ba9a87d883721505222a37b0edd4c6f9a519da58becea04426dfb4ffd9de",
+ .ct = "dc51cec91f803f73655c23e2b7",
+ .aad = "2fdff5599ff34063d25610098df45a8d69fcba22deabc28085355a4fa420ec2702daead93e3b8fcbad5867f8287973cef3e4a323968302021182b5e3fe5d77413e2e36202477a62f9a7e64e78beaeaef8e575511d5b25e409aeb",
+ .tag = "502a4d8cdad446e96d7e5b4b04ac5bb7",
+ .pt = "d2720de7f3cc84f02e241b4e2d",
+ ],
+ [
+ .count = 1,
+ .key = "b4fb230481ade2a486061c93edc8e59b",
+ .iv = "68bd51d2808567936d7d7947390e12b607b3ed4d2500da4b34c76a087d07a00de7292fe01f7a4472e2813d41fe2aa5db22a4197c7826bdf1f524ecb22163f58e45023b1a83c7bb70f57d83bf0475a65a3f64bd65662a0b0bbabe649153746a5581970f3e6426bc794fbcdb89db594f3e67356136b3a18309ca3137951da56fee",
+ .ct = "26f7b519bd175f41bdbb78b3cb",
+ .aad = "479a584aad752e7755f7df00476ca202f97cabf79244229a916fa3438c7d4e1a57adccd6ef909f5b60b1a54e979ed367296b056dc90d680d2b2adc90709e3da858afe0417765b51a132e85f53c78e5708cdcb8fd8f5e1d318df3",
+ .tag = "afe604d281b86dcee49d6efc9ed1207f",
+ .fail = true,
+ ],
+ [
+ .count = 2,
+ .key = "e9eacf1f165246452c3ccf0c016c4177",
+ .iv = "dd8058a5ffbfddaec3197bcc5e78080b2222dafb1eeb7948bcf88126a55c4beb74cbbc947cf3ef251ba9385c884f96f090b5081345f0dc6c614c821fbd0ebb3563b1f6552a82d489f4c2317d2c6a0f906ca8a663c3cd0971bb8adc5de1a047b954ce8000947446c03f10641392de51b13e398fafef05ed593fd141fc19890332",
+ .ct = "d602b98f0342c84cfb82f295ae",
+ .aad = "754b18967058c7e74a1580bfcb51c7ec015a787a0dc90bf51278339c6390496a7e3426ac3b1ac7589e33e2a59ebff056a8c0a4a68f5af9cf2d3ad1e1eb342487dc1c9eb155930ff771cb806c1d88f90a61341c1366c6f42fcb8f",
+ .tag = "16b84ff1014e2084d7d8d18fb00a7273",
+ .pt = "a47f6eeef297ecc69e138274aa",
+ ],
+ [
+ .count = 3,
+ .key = "c237fbfe0720a0dd38ead4bbabae87f4",
+ .iv = "948dd2002f4bb50dcc420870c272229c0a5a5924eb54f0af05e1324996cd7ee8d90867ef8f085100603f4e169a7d45330ccd712e918d16887c4a0bd2c7d4725d011ce27473811e2653a973675a4cb0d9b286cc403f665fb24773109b1e83743a910fc7332e526196dcb24099c9c16d1ac8db733797724007f96940babd78d866",
+ .ct = "c892d824b02d8262a851fff5c9",
+ .aad = "d9b4f3e9f00ff616b519f0e04c7ecf7c6f49edac929163a93ab0ffefdc9949fdf1619c431b7144f826f37986fe44b1a57f1884ae1ba411fcd65116ecd2be2fd7a50805eedd87fa991da638de4ef474faed196da9d1eb4698dcee",
+ .tag = "8c025b78dda37e4a9f1702eda800d9c3",
+ .pt = "bf3fe1f0fa1d7e8c6d18cf287d",
+ ],
+ [
+ .count = 4,
+ .key = "4177face8125c21ea6da912796d25242",
+ .iv = "edeb403856aa16b109ea0097bb657f5e6cef2f9cbec0df5fd68dd7ece9911078b5374e4e11d19bad27821b06d0cd7d48670d5a601551bcffbe7e7e69781f078d4297e41b4478c6381353062d6ead0e97e8d6d5c7399067edfcff9d9d545eed63d4ffbbbbfc4ef386b9766e6a3b025d8b51bf636d5e550e87f43f0dbb7acfa75d",
+ .ct = "c3527e4d3f4a6a1bd8ecd02ab2",
+ .aad = "410eef51590d1232ea0869f8732ed92c7294aeb54d8bea46351e5c8287f788c23884919721e5997f72e2453e321e373c32f5d0690c7e34dbb13fb7446cf4a602fc62d3d30d5b137a8fc65960e123f82012c4979252601ac7f56e",
+ .tag = "96489c364c9be5ab709e04ca8ea09f35",
+ .fail = true,
+ ],
+ [
+ .count = 5,
+ .key = "521a92ddf19bb51514579e669bf881a8",
+ .iv = "b22801e296b95246adea40b0354f013c421d5b984aa38754a7a2f852f6ea4ba0fb8cecfc87d3860aa2b1ed8516a5c55b591212336366eccf4b4e1c37ec6340381b4655ed1f98b01bc2fed6d296854822169fc27a260fcf98ec9541a5bac81a2cd1f3e1b281dc2511812362966f81433a58525e74c5a96bc03d20f12f0dda3a87",
+ .ct = "27b12c9122fbd1f73a30dd0523",
+ .aad = "9e9f171bb3350c449667aa7235aedf833eaa843ed71a9853f81a625621df762a07157a24ec0d8eb11f2dbd76e6558842093a9566daf41de6eefbf7de84fc5ce857139c58468327944bd6c5671b0c79eeabb51daac6a9427315a0",
+ .tag = "4a98d033ed7d3d1147f4e2371bad84cd",
+ .fail = true,
+ ],
+ [
+ .count = 6,
+ .key = "a4ed553ebbd99d6ccd9f850cf091d20b",
+ .iv = "171642b1a1c7cf2003a69145bc18352b9669392294db9d3735b168a8c165af3c37b993f8d40d7e53804a592c29ec9bb1051eca72094333603f070d3a296614771775d331902fb31759b9a648e5a872b5a446ae87ba01cc435f1ab176a616513e80dc89492ac93171305e59ebd62548d8b43fc24199e6669d730da645aacfb688",
+ .ct = "28343cdca42fde0d8b1923b6f5",
+ .aad = "02505caa5e61959b88412fc3b714bc1bb85a9cd64ea804766a6f6702c99f8a60bd371e26524ef892203d183d4cdcb950fed49a5e49e130882f0435bc99cb4d4a7fa967c35f2e6e1474b38a13f6e87cb955f5997367221d2fdfc2",
+ .tag = "c2c5348d0a945f15685391c6718f183a",
+ .pt = "a157b56692eb805495dcfbcb3d",
+ ],
+ [
+ .count = 7,
+ .key = "f076451f83b2952c66d02e06a38b1550",
+ .iv = "148b8e941d0f87270f913fb439fb60d8f9c915cd065c8acd98839f4f299a9d69eece77d0c3bbd8b8a334c3d58e1a8755f0ec1dec82c8e7e86e7f2ba8cec867f7cc9190349342d969dbd65657f8b49aabcde23fd66a4aa22dbc4b40b54bbf76bf742e0d4fcb2a2c2fe31631886e6ef7bf189fc0c078c121c548cad0c7a6a90f34",
+ .ct = "a2cd8d8a523459df713396025b",
+ .aad = "4fa5de8389033e744d5b609f4cc2654a75269297c008a67dfc697e1747fdebf98d4cc4866003eb892ea41c6238fb010dd6aaf933df5bb23bcfab447b8d3c41fe12e2e4315e14318400fec7bfaf8fd6d382329fd99cffe602935f",
+ .tag = "2b0aa620af7dddbf4f75305677e0ca46",
+ .pt = "c07dd1819afcbea7a8c97ac7b7",
+ ],
+ [
+ .count = 8,
+ .key = "c2d4f0e3cd23329ee663e982b7b82fe5",
+ .iv = "b9ac267268f8b6a9f49bc6e51bb1694d5f56dc7abfa6babc3a1ac16a5d31bf6a3bcfd5da691c9d6c1c17a7f947bf11d6ed9e4fe424fc171bebfef7b52769ecf104a02fd1f98251d71fb2b076a82b8b9d03b5e49376e1dc0a1e7bca1d2708be6f1733692f0e4ac72dfea96b208355104dd7053b0470618d74f5e109f19f3788a0",
+ .ct = "147b219544f432fbe809183f95",
+ .aad = "784f173bf85ff861af3effda852a93dd417903a1a4e3d39c58577be966a5b36024a3b852b5b0ba907bde3cfabf2a326b789a021a7799493f2c7b2fc2b024d16b0793756880e2ccf744127b75ea9604ba04d0b2d61f473f0fb75c",
+ .tag = "29de9dde79303aac01f4f585556ed599",
+ .pt = "229f1b9cbc4ca192ea77981479",
+ ],
+ [
+ .count = 9,
+ .key = "8806a074a585513abc5485ef3ae74259",
+ .iv = "3d3d52854e1b3c07156ceaa36c3ccc8eddd97c08a22f5482a5fb527f1d6fde69309fadd1a5967e6c6c7e62eaa6ad362306d8226be27c4deaa0460b9af42ba422d1504b9eb1fdaf6121826ba78c79b54249e98bafb9b797478e2bc94f69ebb44bb9bc28d921b73d783bd3237cf86578d1d3ef973c19e0f1913ca07fe2ad880453",
+ .ct = "3e0b1d5035587ff07fb2180797",
+ .aad = "56c785c77808bb467f87f36914c0026f3cb6f63cb2f210dfefc308fd6a0028e0b9754a5d820467007dca3a145adf5f42b96c17dfc4ff45c996cc8f993fa248fed64eaad3c8367fe3bc447ae709b5a026bb08acd6e8c1e0613c9c",
+ .tag = "5decbf1e2bdc34a6adbe5b4c49811a77",
+ .pt = "26ed0987f7827bc347aa7d813e",
+ ],
+ [
+ .count = 10,
+ .key = "936d546f69c01ab35898a6819eb18657",
+ .iv = "ba4ade80da6eaaf81f8b0154138ec7c506345561db4c74853b1c5782528323211194f89b7ad3a397a6fc592a754a8c792980683785a6bf96873eaec7174c3ef9637daf029f3676f4447bd802f0cb1d8cf5f030d55a288c3d8d9217805aafa66ea393ce7b1293cdc78aefce38547f7cbfedc148dd0427bae3fef851ff352f1760",
+ .ct = "ed275a7e8fe3424ef018dbdd8a",
+ .aad = "74f48d0a7a02efd4fcd3222689f0cca3b5b6645143b1c36b5f8ff05d760794c7b1f8953cb1b839b26fb5aebc66b05c8846f0a70058a34c4b8ccfb54f3f5a44c250cec99cc93d2c6e5d1d0cbaa67649c551e113eb6ec7f4edf0e7",
+ .tag = "2e4b36ffa6549d3bd00eab345f4799bf",
+ .fail = true,
+ ],
+ [
+ .count = 11,
+ .key = "23876f9351b83b2f8ad16f3f75acead7",
+ .iv = "b3dd17e79607b78cf170b378ea99212a183d696b09ec852be1dfd827bfb3b30ae276465344ad7f8821279d00871927ef0973a668a6fef7762a19b6fb45d2980ce1b34e9e6692b902efdbf658683a17403ae734b9781537c98a78c0cd2a603852d600eae460f5c8a06534618efa1e22751aa745cd691c0058cc736363572cd57c",
+ .ct = "8bb7930764a0b9ba455fe02f80",
+ .aad = "210a794830a438852c9e6f60ee1520f7b4553eee130716432a9ec62cbf0082b5470a0408471d54d1e82d3cdcc7ec2035ad34f8ed09690571a4fe9a4539bc54fe5015332793a57df3da121218589a85e846d6a2a7a08b37ebd1eb",
+ .tag = "00e70026ae3560a1f7807e04f96efca1",
+ .fail = true,
+ ],
+ [
+ .count = 12,
+ .key = "6c6f7a2044741e7dedc92f7b986d3c68",
+ .iv = "ea71ba4ac8ec97794567e6b4b262a0e5909051dc40dbaa26f1a631292d0a37a0b31736f66e0b979b43d2e5edee3d68791aeb2568443d76d3f9541229f79b3defea80de15637c69f5eff39a209176a06a676a9481c68976b9f436a6d0421b1426329895e25f8ee6c34b81469cb03209465775e3e673f2fdd3acafd9866f828615",
+ .ct = "628602b67009ae195386962b99",
+ .aad = "84b19d9446594955d5054e809a29cbaf98ffd5ddce2f157fe1f6684f70d210e32109dc26e85a7d5ebea9de75ffa032f774da1dff0dc5b9f55d4b6bbea943cf2803e2bc8877fb917fdd1a5db66ae423eb8eaecd757836fae8653d",
+ .tag = "111e99c90431f2b4eab5e47cbd7677d3",
+ .pt = "9330afe963b73ac6c55a1ad998",
+ ],
+ [
+ .count = 13,
+ .key = "2ec777e4d3b7c64a560e74887a5284a0",
+ .iv = "c722fa55e09a3edb06a6b35a2bda6367da98fc40646cda3ef31a76c73422753598e4abbdcd1e87344df36cb734e50f5ceaef0c707449f24ebbf344839d4d0f2191e01d3e6860ab4ee1fffd9dd5c5a9669dd1e0a1dfdaa82c7561897d0a919877c2b1fa7035c4e525737b7089d2b33515510987063b46e3d8831aa0b24beec2d2",
+ .ct = "047f968a6f49f39a5a343e3728",
+ .aad = "6049e29050f67f8affc5eb5529e9e19e488914e89fb361f52390ba1d5169ba3fdc6435c293c2ec70258550aa75764b7615ab5126b937f5653c39e05186f9bf4c3948231a1c1fe35def1ceb51271e83a7df44a673aebb36b7d9b8",
+ .tag = "f6ce53be00c7cd509399449f0da3db7c",
+ .fail = true,
+ ],
+ [
+ .count = 14,
+ .key = "817cce7789d38ce70599bb93bbc21ab4",
+ .iv = "bfd0e3f5458d3419facee435774b6f167edddf0742730c97ab923e8aa9af221450142898b338a77dc802a3d62687c04159e0eca1a308c2948442e1faa8d454aa3990ac572981b04c9c44137bff6de2d3c6ab9f296d02ab2cbbee1ce65c3330652d5f253072141941c1d0f1311b0ce4745009517c1288d3d9f5adbe1031112ff7",
+ .ct = "d0d5c95993aad6ebb0300ddd2e",
+ .aad = "f591060c3ccc27ef9a282cb03782375bb3274e59d6fc852cdd9c28a40524a854ba0b91bcc275f69f8cccb00403e1b0d6ecedac4c578abe6d0b713194e7b365c50ed0f965d8d1b7ad0cec1bc24d903a830e7b0cb9d319429f69a7",
+ .tag = "b3f87992477a92574dd7b421fdf42e62",
+ .pt = "6cc266c6ada14cce6a07e134e3",
+ ],
+ ][:]
+ ],
+ [
+ .name="aesgcm-dec-iv1024-pt256-aad0-tag128-key128",
+ .keylen=128,
+ .ivlen=1024,
+ .ptlen=256,
+ .aadlen=0,
+ .taglen=128,
+ .cases=[
+ [
+ .count = 0,
+ .key = "074464981c19bdddf0cca0850bd86f12",
+ .iv = "f4d3cec171407b0d635ec1ddfd2f1794caaaa926ff2a2a3716180eb738c9bf330d378cb6ac041235157cf59eebe132f884192984c5a87de8db7626341f441bbee077e5c0226d87879e0f41af0043e56f41dc3d80d992214bddfbe95ad001cddf2c0bd9b7be7b72ac6e985b4ed70a6db95e81935db1d1c706838fa59d8f5f0b7d",
+ .ct = "752972bcd5f87ea23d0515e6bc775a3c24881387d674db1638d528275d6e5174",
+ .aad = "",
+ .tag = "daa496ea67a9372ff665686387ad5024",
+ .pt = "f8310b5c3e6ad4d75f5c33d125116bef3b2c5f06da6d8751a44230e7e79f77ac",
+ ],
+ [
+ .count = 1,
+ .key = "0403cee95868708e392751fe1ed03b7c",
+ .iv = "1f8f3c912a01f058624e8c70ace59d296ff33d5e8f55d416bca82220dc6fbab711892570bd7ed35b85e2124e81c322db65d0ad0858f7381cb94fd06df46dee3fca940696aa67b5aab6034d78787035df8d9c2f769ea5462252c498e9c65fa2fb397ec83cdfc0ff0c0e0b2686cd26d1f271bea86a58ce6e83e303fdc117010e3b",
+ .ct = "75b932c4f8b4e41b68fe0ce3f86922c837c66add144901ab92925904abf3fabb",
+ .aad = "",
+ .tag = "5f4245e45d14825e5ae789c6a859aa77",
+ .pt = "da7865a3f5cb16c7dc2ad7073066df8774c25e42b3323ae24ce539752c960b96",
+ ],
+ [
+ .count = 2,
+ .key = "b118b4b2e8c0a9bff7866a3e06f9635f",
+ .iv = "14ce80ea97ca36ce2a2e3afa9b66295cdf8e41b16e9033eaa2a2fca4fc9fca132b96a6ed891d65459649cd74ca2397e6673923227327a3f8bf346904bc1f8cdcbb52dcb34bd220fc644e6c8fe26abbdf506024102574161b068191e429af2846f9f6a98969984db577a43ec1aba56865e7c3282f351d713ed35540eb795b414f",
+ .ct = "983c282ea74cae9b5484d9a34e170a4fdd16a6715d9ee9b853f83d1fe5bbb6ac",
+ .aad = "",
+ .tag = "58895fe500be15dd071395817ca2250a",
+ .fail = true,
+ ],
+ [
+ .count = 3,
+ .key = "637b2328b5fb9922faa3aaf6214eb567",
+ .iv = "bef4c99b67d745f5ff0a79a9e79de872d5e93e16c273c30256cb6988299dfda1e33661648275689f476f033eb10f73fb1f20377924b7c0c5be65fb4755059af9994b3e56dfbd53af5153fe5979bb6c03f661b4b40a9f64fe9dc3b594281cb649e8ba18a75ef861765a1111c6837aaec58c59b202d917a8a06e89debe6b9e8d78",
+ .ct = "0cfa1f2cbf8f1ddcd3a7bf1222735ac5ca8134d557f1c303e72cca575c5ac9f1",
+ .aad = "",
+ .tag = "9d57c14bc746a158d75181de1fb34f25",
+ .pt = "ad7e392d4722b16d8085ca85374ea45217053364431969371710c6acd2eee94d",
+ ],
+ [
+ .count = 4,
+ .key = "ca68f54acf65e2e56a64c90844c55bac",
+ .iv = "0839736b27687725a8a83d543896295c763a666614c0c7a7278fe412b237daeaac5c1d06b637bfae1e82a8fbca5b60ecafca482b809975a380e08eeac39157ab453487337b82c7c2821ed0b0cd781e365a1c944494ee59df77c31b844246c3d4cf5401d5f2bdf94a13517c8d19151aaf0a45969998ae1544e5c0f03c80a2117a",
+ .ct = "63f30d5f25b10219208bbde9f392bf1b505b5abf0cf2c453d53b99398272bb23",
+ .aad = "",
+ .tag = "82602b7f914f66b3c131d2ab47f0196d",
+ .fail = true,
+ ],
+ [
+ .count = 5,
+ .key = "a6b82bbf306300ad4c5acbfa5f165ee1",
+ .iv = "963e3d5263b921f936ca71f444a58b3b35bc54b1f784820dd801eaf0d34c1f141abe3c8a118f21c3d77c0f9dd13d7432d20ffa9fa9450a0f04b9762b621c6a1da1fd6e77ca8bd87584659ef03a3d8135ed139a8c0075e685e395049fca264b197436aca27d238a70a811bf24d80d4547890f8a94efca480c4846bdfc565dd456",
+ .ct = "d2e2d6b6bb6162ab48f00ecf21be2b79a37d253e895f92c0dbc5ebea8dcc19fb",
+ .aad = "",
+ .tag = "f4d9b7d86f47e0facd10a2d7fccdfe35",
+ .fail = true,
+ ],
+ [
+ .count = 6,
+ .key = "3acd59f0595adcfae8a95a0bea33ea8a",
+ .iv = "fc12fed39a7da3d5d708e53725d7892eebda50eed51c19f81bede26a569a70e8d28e461ca8b182f342534b99340ef9358f36af9622379db56f67fc726db21da29b360751020427836f12ad0732754bdf411d495a08e34a24fe2521c1dccb4134d26dbc374e609d23eef56c614c0a3939ec5181f64836985e45cf805669de06f2",
+ .ct = "97fe74bb412a6c21523600ebb8a932d4ee265cfa64b1bc6c310c39e8eee75b1a",
+ .aad = "",
+ .tag = "74cf263127a5eb782522e3af0b9e1960",
+ .pt = "4b5a9322c225abe78fc49ffeb63cd450563274c94cdb28dd717e121e27ce9853",
+ ],
+ [
+ .count = 7,
+ .key = "d1c8d94161affd1f158959a20142c2ce",
+ .iv = "b4c31d9ae9ec55c61de8671521d99ae67b01d71cca13833b59bc06421ea623fda0d4cc2d58007d1e09ed0840838ebc5160dd140892ef22ee725da86d8db8e0893feee3b969001669b4727e130ec8e75c5889e075a2fc07ca5d2669e284515ce001e58b34dde488221caf4ffffea6b73c7debc58bcceeccd61b495cbccc2f444f",
+ .ct = "a65386284febc7349cef048db39702f36596d4306acd7335f55a76459623cff2",
+ .aad = "",
+ .tag = "858b6538a597bb628e544f3dfbc7af9e",
+ .fail = true,
+ ],
+ [
+ .count = 8,
+ .key = "c1cbc9ba8651900c9671dc6aa2cf16c5",
+ .iv = "87c11090cd8a0694d87ff55f2afe2e4289cedd10de36ca9c58048745858c4788000fb208bf12032c7ac90397b00c7c804f9b36ace946ba196375cbef1c62ae42a4fbe0e5e979d791b50ead1addcd73627ca4df7f334b7c4eba527d0ef0f14468cf67b7f1be4adfda258a0467f19a815760a407d5d626b3892e4443c8fc7894ae",
+ .ct = "6ae3e6c83afdcc2e165df5792d3561856dca40cffec1e0b984aaa955f3000fa8",
+ .aad = "",
+ .tag = "6cda50cb67f066ca32e2302f343af92e",
+ .fail = true,
+ ],
+ [
+ .count = 9,
+ .key = "d422a8691767c46dac4cbe0f46dce822",
+ .iv = "ee6cd882eab6e993b291994a17a8816a276d9deee3812c09590ba25c33b6275aa1d3e9a60b1ebb89cb3603864ecafc8440e98f03c759f52f38a8565ddde66dfa3415708ec371dc5edc3c378be4c63bd8f8936a36ac652dc17a9186b1a0e4b5da9a849019d1bc04de0ad347140cac2253cde29f1082bcf2ab49ce2aa0c54ec063",
+ .ct = "9c9ebc47b7c44bbbe286fd0f079539a05a40984f685c701eab59eef4442ddfc5",
+ .aad = "",
+ .tag = "c4a9343d07f3bf52c6e5c3a0fa9b1b3d",
+ .fail = true,
+ ],
+ [
+ .count = 10,
+ .key = "8f785b4fd2751d14ee10270c4ff7071d",
+ .iv = "743201f3a7703ff3dc477c7a55641b95b81b93c5037c111a0303525329ad89becff2b47a97123b48c783994fff15eb6e356f7834dd0973650b8e1f21f8c8f821719d02a36c5723d504e657bb1306059e4da283eda8e8da12d748d1c15f5ff9d02e0ab4fb8f10bc0e7b028beceb7256f7618678fded28b7dbaddc5c5fa8ab537c",
+ .ct = "f2bb66ea82e849d49d828858a6c6803eb3853582c052ad177dca2813b18b01ae",
+ .aad = "",
+ .tag = "9dbccf12e0af424f83b34ad686054e5d",
+ .pt = "ee5486f673699cb8549aae174bc450c64fa45acdc1c712e393d948dcbb10f474",
+ ],
+ [
+ .count = 11,
+ .key = "2195773ec4ff48c2c3b42127ff7d3d03",
+ .iv = "339b499fed10ccb7bfe7147424536d8fb40ebda5071dd6a4181493c70bd165bf2a21a80f241787a1540def1bd3c1263f5002a4dcc6e8624bcd57a02e6fcd2cc1c3f4260cd7bebd3ae9cf3f9af28dd5fb1337fc5864fc29b9d7270316b43126426cd86a7653358539202f9755b38d474f30a29c24664c47dc5c005ce31a19d197",
+ .ct = "c02649cd86b2481149230e3e1c73b0407455946ab284531a4551c4bbc3492c26",
+ .aad = "",
+ .tag = "575e8713e0266a94e96bb5ad5942b421",
+ .pt = "e8588b941bbf8d21cf0c3885a9bed63c68e6640daf5543d58b15da0352686f15",
+ ],
+ [
+ .count = 12,
+ .key = "da4a3a3db80e4f3d129ea9191ce3443d",
+ .iv = "13470bd5dfa3f672915677ec000b6d394a6155b6cee24a6da44a3177dd6239bf495add45b8abd95b702abe40bca52ddfdd6c28f939efb8e57d00267bbb7c467706a895f8e8d2f77d167087da02e6d82f44dd0fa417e266c873e8cca5c9d59d8fc63ab3410d2bd322aa31a092634f765379354315d759694e570e6a96ceafb59c",
+ .ct = "1418fabad22bdc76a9f6a47468043fcb0054a8a17789ff86b128e48e355fb137",
+ .aad = "",
+ .tag = "e5c39a2b6f260f14c4e8edd52476ef69",
+ .pt = "164839d6f82719e419f18f5fc0bd8512bae500d63cad9730a0e31924024ab3e3",
+ ],
+ [
+ .count = 13,
+ .key = "4f786028ba694d43b0464cfc92a41a2c",
+ .iv = "27d8f13ef2e1a05992db6f145cc306da265d3131ef1a323ca485079230e59214db85f011a0cdd1a35c9e9176af568495e803af99625cb2493c4782e9f93e1f48717ccd316b5dc2d4cf7120933ff26ccd521e1995c6f0da1c49879f025e8eb068d16bc0769e6a702306eda850521e49767dd796727ae0310252db33bd11046540",
+ .ct = "f8f7468fbd2791d8a8e919337519ff962935870dde406310c918b411061a3fab",
+ .aad = "",
+ .tag = "fea3cd0f3fc389566deb0db8d5988f23",
+ .pt = "e9adf36e523a16450a89b1301792b7a5034549fe52060f36d87c5ed8086d7a5d",
+ ],
+ [
+ .count = 14,
+ .key = "b274440e8b6cca23da7f4757b9b66b1a",
+ .iv = "ae636a4d14a75426e33be70b5cffbb24d4f8eaf400bc958332abfe8c31784c257ef2ed2af48fb5dc9e3068837093cb79d14e6f4b5a43bccd03675004d966582fc7cf83b8f1d19889eda99975cae53734567287e0468bcc9512fa600abc4ee0b4d5287a7aa22ca6c757fe3d2559b4006d0cad23313d79c332dfd0644f714fe395",
+ .ct = "8eeeb0b538d9f694df50e538a9108e1256803c566477cb14d43cc6a7983a0b35",
+ .aad = "",
+ .tag = "6385ee1143a007533d6aaf994649f871",
+ .pt = "8b0a8be3c70bd1b9117516fcb3ff77eeb6c55487370de0e1a4878357c9c4af11",
+ ],
+ ][:]
+ ],
+ [
+ .name="aesgcm-dec-iv1024-pt256-aad128-tag128-key128",
+ .keylen=128,
+ .ivlen=1024,
+ .ptlen=256,
+ .aadlen=128,
+ .taglen=128,
+ .cases=[
+ [
+ .count = 0,
+ .key = "794274a070ff71f9295b8fd22b57f93b",
+ .iv = "f63e67df0082d181898a6b0c126777eb5844e71412a9757a2c829ccd5e8d7ac4b7a82f352b554c903f4445786831dc5a6dddf4210adcda7189bfcd1d2e4dcc84cee4c4e75572e7307e5f557fcf823d75ac4f2953899d2d748c03b016c81dadd957d1a0dabe8a82b95e689c8649afb50b1257acd1bf25c6f57d5f4f958f07bb82",
+ .ct = "ac05370252fa7128442fbf3e395103c18484fde70919ed1382ac7e3df3066fef",
+ .aad = "4304937c7404a02f6ab2356177d80729",
+ .tag = "63d6ba978e2fd2a5f7c5ecd276fcd29e",
+ .fail = true,
+ ],
+ [
+ .count = 1,
+ .key = "cb1b70b03980326494e67b1bc3ac9269",
+ .iv = "f4db87a3a23482eb50f10d78c7d11e1241556d03cda304ee29f51a14794250c4a25d06a75db651c3743ada3cb6c0663a9fce967e2fcc8fd571c869a5ff6b2807335472a2fc2f59cb05fd1c79f3b2d57b9488842e594e2a101771aba2129f95e8bdde4f2cbe71a7e0436ba9fec73f4e0f7820ece228c5e1188ceb30bfd851dc41",
+ .ct = "eda87543a1dccc347076ef5bfcce37ddf66fca6ebbede03ba86acdaacbb657a8",
+ .aad = "87ac1cd2d9228952a621cb3369f0d140",
+ .tag = "9ed53def0badb0af999ca8c75919447a",
+ .pt = "db8098e6a759ba9ed123061134811f4342a14cc6c728720cc9efe4c565478a31",
+ ],
+ [
+ .count = 2,
+ .key = "afbcd7d3f14bb26540cb6a33c1dff08b",
+ .iv = "dcfa4c19c9542a47ef3f8b1d539b7ac53b814e827219afcd7408ec86a9f6150ad7e25f57835d27e416abc44d5c3c905fc7acde6153f519c273000192cc21fff806d8a7baddbcc8f5770cd039aea4753fa0888ecc7427ade0c55a369a47a60b1be1c3c992ca117bef8ec2d06d19b9825b44209b71bb284e1dadaefbf7952dd942",
+ .ct = "ab0d509055f8e63aec8f2f6d53f97105d2f6c9255f207295996fd05114f51007",
+ .aad = "53cee0b262cd4456954f69a95ef24db9",
+ .tag = "6e6acb0b28b5965c75b758c832c29693",
+ .fail = true,
+ ],
+ [
+ .count = 3,
+ .key = "2df4f46364d0ead86deb61a79da4c918",
+ .iv = "3c4f599c34c22788c1886e85463a3883e14aeb543382ca68a3c8fbfd6b24315bdd2859cc042d49ef40c6d810bbe12b24ff82258a1a4ba08407bc9a3a03bd074692de7d5cd455fb1ed29e65924e22fcc62c5e54620e35df36fade9a80aa4ece7b278d7e1f53b4e2bd1067daf8723ce66a94d43416574b94e45afaaaa006db8820",
+ .ct = "9ca528ad672d762342b819826e924775c4f342fb3e4ee61cb6639e9f47119c73",
+ .aad = "be1c95fbe5739d9a021672212b5bdb41",
+ .tag = "f1276721b899c44e8042682366d1c4b6",
+ .pt = "33f33511bc8057cce457f17aeab499416113228e54ff3e5a9c627bff6203e47d",
+ ],
+ [
+ .count = 4,
+ .key = "3ddb01412a0741137bc71d45ad1a492c",
+ .iv = "b59c7fc0c56072c517ffb1d52ff435638f39778597e0eff55daf61f1dfa321f22acce1e700e888bc969e2ea7f533606044641228e94d7f67d76b7124b461334c9f637001e30f29a9deb38d46cdc46407be6603545957964e9ca40799a406cfc6c5f1781b7ee3c81c061ae6558111f32ebb62a57ad6b9a44de071a3b44acc78b7",
+ .ct = "72c0cba9f20a848df3f2448402f58324f953a78e3ebf4826d5bdcba6f63a1fed",
+ .aad = "4004829ec009957c933d0a1f0c5a0247",
+ .tag = "1a9a4af75f0266463babe4b0d43c3fb8",
+ .fail = true,
+ ],
+ [
+ .count = 5,
+ .key = "00a3b48cd6c34c338568bc49dc288682",
+ .iv = "7bf4ab275d1ecebbc24d648bd15831797dbcb1613d902507fe2a0df819f5653c8100dcb81a22dd4fbeb251229be2eacabf4c360ce31f5b1aa3e3fa0eac0d223b66fa82d6fe84117288a47bfd94d285544af3ea1fd7d36a245847433c16b17a8b97906eacce5d8e51ab6b321d9f1acd451e7a216aa11a0b4062b462d0817d8bc4",
+ .ct = "4523e4db870ed357a89c60fadcd885b002c9d79d3e41d70aae35a8dfdc66f654",
+ .aad = "dd58d8cc462ca74302cb17372d109ae5",
+ .tag = "c6b79475129e25fb699883f881f09cae",
+ .fail = true,
+ ],
+ [
+ .count = 6,
+ .key = "3ba3016f21d960fe106a1e04c422dbba",
+ .iv = "70b8ec419b0b73c3d2216edc6b122b2742963688980e7313a8d213e293d578ebc36233dab5b79341fdafe6670ba406840280d4f2929f508e8f85fb286e37320cad3b82a8c62b5d91cba97d4202985573eedcfe53ad315efad3bee8a8a83b70dc28d172186ffc850843636fc013692bd29af20d3eb98091b753c977ce8427681c",
+ .ct = "9ab0fa2e557d79e0e6ed9eed6f0bec48857395c3c47c65b9398e9205ed98bb07",
+ .aad = "7c89237521a52a58ded93f122c5d6c46",
+ .tag = "3743599f5901bd01ff53911f32fce074",
+ .fail = true,
+ ],
+ [
+ .count = 7,
+ .key = "70d1f1a00b85ea4d53cec14b21228f73",
+ .iv = "b6ec2c3a752158eef79fff78ac51f5b3200dd62bd529f54c435d0a189d163305105d8cf20da3a49b80dc1d984e27d64cb260989a1fd7dfe26f2cc518e4c296ef308fc6d84135053f1922d9d335b23d659b49a3c76c70007c25e751a455356b210de733208dd123a06d8a5b9bb95862f66e6e8c8459f35182ee56442b4095fc02",
+ .ct = "76543ce79272f7a8b77fa94529444ddaca2851b1be77419359246e8254f8b8f6",
+ .aad = "9f78a9f8a477c94ddee8b5bfde37bdf9",
+ .tag = "8aabdf39e429fe45cd7f5ff6c929f346",
+ .pt = "ef1d13f122533f1ccaae31caa5c3f4fec94c966cf7065f2530a0ad2c546cd219",
+ ],
+ [
+ .count = 8,
+ .key = "bc4aff91f3af227c02e9bc2bec24ac07",
+ .iv = "899fd084a61e8f105e9f7d4468f8b464ea142cf3f4b6ab23465f8169f2583e20876c54abfe2114233ba5f6962b2b736acdb5c97f83b31eee13fe8f62bfeeb4cf1350c330f3a11b31d60d79059fc8aca8cecc03c7a896382fc3f15e4698b42a8c363028482edbb8d76a6c290758933edae1ebc89147c839e3cc32a560024fc7f2",
+ .ct = "1b36cbe0f8a42308d6d37b15ced0dbbb67b9d7207f90b80477deb7f459e258cd",
+ .aad = "f520a9387d9e934d98eed977c7ef467c",
+ .tag = "9cd481a33268cb89de5ce681956b4743",
+ .fail = true,
+ ],
+ [
+ .count = 9,
+ .key = "66c514a770d9564c3789db271cdc1c3d",
+ .iv = "884f52df96bfda4fcfd812e1b2ee9e4c4ddef36ffe7001676b80ec3513219610505e389641c5b5ea7e849f3b3ee43733df0d89df991e09c7496ea2d87f0e4ed5ef81672c7e9c76c07ed80cdc99c467ced8254898b606b6eaea02cdec383c74c3ff6897f74e9073033c1eea2055ad43d37b94cc828caebaf9c07809d38f90a384",
+ .ct = "ab23281076921b2c198eb9825808783ea9ecb95fe2fdc1a3a8104a44fb765f34",
+ .aad = "8374a775b7b50eebc483476dab0fead1",
+ .tag = "1855d3e09ca8b29db7c42e511c21d0ad",
+ .pt = "7a98ff95288a919f07a95b3a66e75b9ea771430f176b59be2e14aa0b05e09eb5",
+ ],
+ [
+ .count = 10,
+ .key = "a93c768503a578da1f75b55ece7f597b",
+ .iv = "27c51e0c7f5fb6d7d378732a3964d1dfa5c60e1deeef89b72564ce6a48f64b51cffb8e2fbc8274f25b7219d4ff3e3955dc72c48ee37cafb3d8a6be7cfcaeb9dceae28c5db43b13cb50532822f6069a3aecec410133b88cfbad3ad49be3c51c4a8ff09fb5dfd0c2ae952149aff0b5a3b91e881106f3722a7a771a9eb44ce3b32e",
+ .ct = "99a0d7e34331ff25edccc1fbe60d1a2fcee14a5119ebf0db82cb48f6060bbd0f",
+ .aad = "6f0002543256e1f3585b6cf22518dac8",
+ .tag = "727208ca3f99e612d8fe1f8097168b5d",
+ .fail = true,
+ ],
+ [
+ .count = 11,
+ .key = "8362a154711e13f3dcab71637e30341a",
+ .iv = "0c9222d1c871ff5004563cf6b79a2681d6266522111580b9c18cc3644b859193deeda76aa9a58717209663d81f718351ce209a8958cb255fdcf47544fde7870967b979a0ab2a744c95c1d92f0ba59f34ff389667e7eb4f4cb662f1c5b5944533e3c232b7a09595fdd1f2ba721e20813b7932bc0801996eb46e6443091f6a2722",
+ .ct = "b615eb22afcf047a08e90fd3f9bfc9fb3292b9fb99941ae688238549078fb690",
+ .aad = "fdc37c5d7892302f312452e811b82e9d",
+ .tag = "4f89ed3e8dbad3e8ec89f4a8b66dcbfe",
+ .pt = "0a34a30b57047610597df24ab2974be3eff258e45cbb0eacf9ec083ce9581df5",
+ ],
+ [
+ .count = 12,
+ .key = "cc14e1f2bf0e319a859463c37b0504da",
+ .iv = "aa08fe57b65df15b17011db1ec62dc3a86c502d16ff8d4ae20c4c9a193249c02969988c1f9a11919ad89ede8b38812591a842d0bdc064657c71fe3438d59e0c1be10da20629aa7f9f30e278b47d28bd1a45d38afe4ad5d1fc8c991fe138db17dad740264781b452c0dad04a04fdd33cbbed0b7939d66b52d54a57566d5d0671f",
+ .ct = "ae8f0db217c2c6016cd0edd8a523d0da2ae17d6629c097c700ecf2bce23d64a6",
+ .aad = "fb1b4318dc9b1aebe208610ed9299432",
+ .tag = "fadcda8b8599751592e17a07f01e6d86",
+ .fail = true,
+ ],
+ [
+ .count = 13,
+ .key = "996e623a32b4fd1c6528c616fb25f780",
+ .iv = "b2884513d13958a9e8520ac502d275fb8bfbf97228e31471842f877ecd6c7720e5bb43397af35c9fa0d989ddd95fef670d8ad70f83c5607032fb7ca09f88820dad0d67a00d3dd647d350b5a9406d1578e582a71f6cb7d23ee05778c9897659ecb501ad3a052cad0ef0f66bf1896a77d901566d4e6cde252ebeb8282cf0a88c7d",
+ .ct = "da36f9bc55251b08b7f628fd3c284de0f2bc4c7822ca75e4c6b8eeac5efc8aee",
+ .aad = "e3d2f212042754d14a77d9f4e717ddc0",
+ .tag = "25cbc6705f2c7f6fb05b7ce28f108b1c",
+ .fail = true,
+ ],
+ [
+ .count = 14,
+ .key = "7b4bc310834242d689080dfff9f23d6c",
+ .iv = "0e507bee55040ae2394eb5e9053d8815216ca09780aaa9baa05a3c72ca1fa3d94e6d09d5195567deba070111ef904543a1cffb8f0aa70519e756b9a8bc964fecf0831f85f077fa6a9abdcaef12d0fa3922dc9caf2a57148e0787d8f242683562648161b75de01c9e77baf6fa67b5cff61919712425a61e78c5f7f81f0350c40c",
+ .ct = "3ee8879db601bae781d07e5a902ef02cce6eb60a339ffd1a3037f1ad3120075b",
+ .aad = "65baad70ca3d2b2b381162b39d12a831",
+ .tag = "5713c28206691bd234777e8e3953e6e1",
+ .pt = "611453fab9a6cf7bef256fb9f801b833d7a64a499cac28cfd6c46ebc661ff630",
+ ],
+ ][:]
+ ],
+ [
+ .name="aesgcm-dec-iv1024-pt256-aad160-tag128-key128",
+ .keylen=128,
+ .ivlen=1024,
+ .ptlen=256,
+ .aadlen=160,
+ .taglen=128,
+ .cases=[
+ [
+ .count = 0,
+ .key = "f77c0a52984b31f839c2bdbc2cacbe2f",
+ .iv = "fe91dbf9568e8dd4f175762e36b4a28c198d4f2ff59ee7ef2c6a681c5618cf23fee9a5eefd693b54d167ad17f78efd8cf87af63d725b10fe88e71eed77274d999afeb1441585aca35f42e960cacc77a9a0d7fec9b30eb50d7b71d3724306e1b29cb1926b0602b3934908ff322ca0ec12f590999af1646b27c3266362d3ad5d97",
+ .ct = "11f8a917d77eb1d14c14e821dc52afd0b1321eaf70704c24646f457a5b7f4f8e",
+ .aad = "aa4ce8424831b72c15d21d857bae40c9400da2c0",
+ .tag = "670f962a59e390957cd944a43f287e46",
+ .fail = true,
+ ],
+ [
+ .count = 1,
+ .key = "9017d2c52253eb635452fcda24bf8e84",
+ .iv = "e8b24af11e7c39ecd0f8c5a523acba6f155782b0112fc91479f4dbec74406b7fe2d9eb974cba46be6afe57f53258cb98c44c26bdee22d97b9cc03fc6244f8aa183458f10f8707ca1e7f67c040394773006eef283fee4c6ca325c41f99a2f1fc06fb4b926b296084eb4f129ab197f78a36bb10dc446bff8262f95d9c940f569fa",
+ .ct = "4408458f6df032957c80bbade4aebc11a6dca45652bee57580084913b884735f",
+ .aad = "e5670d66b59cb7a03bbfe9b06674576c3639c876",
+ .tag = "f7106b15615eecc5d436b56c9ef10bf0",
+ .fail = true,
+ ],
+ [
+ .count = 2,
+ .key = "2dc0ed46d45d6628c1b7c242b7ebc190",
+ .iv = "071d32502f5315ceba7e0f9663112b16c9eb4dfbc063bdef55d2074adbd9bf4e4df64d52add08ea97fb78f2b49fa6e91dfe387ea6c046da677a30a1ecf11a4f422d732a484ae101946916de26595eeeb30e8a1c3bad3efc52e34017ac38a4026f85a7df30511e710726310a2c1dd247a58fd1c1bd7e6396d160dae5a8afdaf6e",
+ .ct = "4b160e27af60cce0c260f7aa93f7e4f8036706b30f449a09f39294cadf686cbe",
+ .aad = "b99715efd13ce1d8c6e399834c1c1582472a587a",
+ .tag = "28b9d60347f5d026bf50049af15db5ef",
+ .fail = true,
+ ],
+ [
+ .count = 3,
+ .key = "cb29a225b14473a9bb6a7af2f83fe696",
+ .iv = "140d42b87cba4db5f8fca27074db4e9b856a2eb63fc28fce0793804ff4c0162ba9e05c18dc0392b1aff4500fb035ef7e8bedd0f6d43d39c356bd468b479bf9158570897ff77e4a170b992d2eb8e5ec00bab04de96028cdbf97bf96385413965b32a95b1479bac1a305f806c5b6256cd73e1999418c0e85d054f5b76921ed7d19",
+ .ct = "02f6c7c689b994ea477e1b12a1a01d66aebba6cae7110f830d4bde1dcf055818",
+ .aad = "a030397773795602db7ecffc373a481a011eeff5",
+ .tag = "5c93df53f3f81b0cc7e0127fe04eb016",
+ .pt = "44a6bbdfeed0e929d83d37f8c2ca1087f98c22662280bfbddaa73579ba8a89ae",
+ ],
+ [
+ .count = 4,
+ .key = "fca0bb2e9ee2fa10234864bc01b35b55",
+ .iv = "7e1fac60b8628bf46685c7cf94b93ef657382f44a0a75b82cbdfc510eb70ec769da1f6c4fc62bb60bf736491f61aecead7b8f19463b6cd1004f2115ef1eb358b3fcf3396fd67282ee339754b83e9978f29ce2207ac3c9a3066fbea6f6ab03b1b93c58c39d257e5d965112616fa27198204dca3feb57d49abe17a3b59021ca3f8",
+ .ct = "a7ac7fc61bd02ab791bc5634cdc0aee4b9b60d33f8fc25ebca6bdc813ca8ab19",
+ .aad = "9e010d0f41b219012e3aededf4ae65a9b4e82dc3",
+ .tag = "ec01667809536c6db2d894f3ee1154c7",
+ .pt = "cb9fd7221000cbf737c0da5c3f0b7f91f4208e6dac310ec3642b01714481ee0d",
+ ],
+ [
+ .count = 5,
+ .key = "b94119c9202455c7e9f585190ad9ddc6",
+ .iv = "e48d0077f870946c8d5b71779bba91fb123f9ecd380aae52d3b3706982553dbf056b67492cf7a95c463a92d7c04caec66571518da6aac049864dae68d9bd9d6243ea45abd69cc5872c9392b89302191e5efa6b7209d2a89c816132d95b6681dd282e7a49cdcc2c2d5e3df7058f02884fa09255c99d6a51c81b26890c24145cb5",
+ .ct = "a9bcc951d515c2f53db8f25c385da49fd69eafd91a7ef20e7b7f4044d05f585f",
+ .aad = "2086c40598dd102015973cadc8b54db78ef3f54c",
+ .tag = "b8518587d93d07a288b598cc9ff81c65",
+ .fail = true,
+ ],
+ [
+ .count = 6,
+ .key = "d5bb28610bc455f10aaf2c9d06419bb4",
+ .iv = "ae665a9f7b9548e6a85c51534cc0e7eea6686ee2580ed4b5b7ad39457ec73e092c4fb7c4be72d9faa4513bfa966696efa221badfdb4f40f7d6e5cb65d1e024388496dc3e5d6ef36f580d3d5d549817b4eac92410c2feb48fd75e823ef5255d6715e136f722cf52a0e5950cb3dffdd5022d596bca4c316da46955493c97ba9ee5",
+ .ct = "ae64ce6a56f5de1d741f1be9c04d839595595d77d8eb78138e339536a33c5836",
+ .aad = "8984d9b9ab6b36e13e22df12e139009fc0aebc08",
+ .tag = "1ea759f6218f0778c244d10d2e1360aa",
+ .pt = "bdef18e2dc38e5477c6cbc963fba9ae50d1d6305602c76724832b08958b59466",
+ ],
+ [
+ .count = 7,
+ .key = "fd7c6f0c89e49677c092b503f2b46d60",
+ .iv = "b0281e00963687ac3a33a36267f761df6957600f3e6e7201fc4425e3721c346231765a2e1b0508e278538299db59a427a0495768ee1c4d2a60974afb2cd9085ccc77bbc255ae30501da3c4abfc176d2725289b09d2107081b775a105aa614a12ec68716a5ec1c0b573ba6646beab1d24996d9b6f5a89ef12b6ce37251c289c44",
+ .ct = "d6f669dee81433bb8f98360814ca3295fe39fd14cdd23f5e5f8e184d8d4bf3de",
+ .aad = "72316762593147051745100acfa2b1fd76847f9e",
+ .tag = "e267c372c65b3789a22f3f96164ee518",
+ .fail = true,
+ ],
+ [
+ .count = 8,
+ .key = "815c9f1750981e686cdb29070c45364b",
+ .iv = "2b10496e2e0120a0da11c9532d894eee293d8a8b10439ca16e6d1c8a1d87a28d22173eb0679a283f57d8861e18064a4a5ebc0f69ed87c75b3ba8dfda550e10f05736e3a3e6800ee121e4dfd3d834cff274573f2bd85a7ea47050cd11269f21db34b2dbfb2f2c9a6e9d261bd44eb04c8b48da3892a37f5863db953cefe07a9eb9",
+ .ct = "fb49883a14c899f9f117727281dc970d7cc90c0a35f01fe5f953f2ff9945d652",
+ .aad = "d4e6650825fe58323cfa0c02ee0d56fe20ef2474",
+ .tag = "0592c89d16230b2f20734d4e6b255f31",
+ .fail = true,
+ ],
+ [
+ .count = 9,
+ .key = "80e8deec4d33a097eac7a13d6bc45d3c",
+ .iv = "8d22205b4768ae64548b58f7d1cc8bdcdc970df0a3b4cb35a98500353fb8300b2f938cf510556a82a05f3c5109e2edfea424e14555abba17c4ad88d8329d86eeb25d24884bde548c42d5a3dc9605920c10dcbfb9749bb4ecf91c67cadfabe388a6ec094c3857e7ffa81c268aa9c38773113f742598f0bc7982ebd4d50bfc7d8b",
+ .ct = "041fc7f1951dc29268d0cc91aa4b61494fa8465b060e78979268fb1d30a3ed4e",
+ .aad = "a9929aa1f07ac306ab43121492fafe75a2fe4154",
+ .tag = "9b228b72b4c3f43a9c6175ea398129c9",
+ .pt = "65592088a84c8009222319a11963017a83c8006d39538345ca62f3e2f0953707",
+ ],
+ [
+ .count = 10,
+ .key = "8679ea0df1e066a6ea4520244b0559c1",
+ .iv = "72a6b2ce55e73eab557d55ffd1178a2309ff245f49e3b397c9e4fed46a879a7745c4d334de13d7f1ac81eb2f3bf144513d5fe0e88f5bcad67d80ca3415260d7845fb414c62855520dffd988096af8ee023838c53345d977691c9b927a1f595c5b90b1f71c1f252d73255bfea7eafd57fe58429a2a1abb64d129d6d2638809a7b",
+ .ct = "88ca698b19a7dc3b061a09b9240215abe364efc3047038081329f08ab419ecc1",
+ .aad = "cb5c8d0357437c646dd74d374c395cb88bb4df0c",
+ .tag = "826d679ccc983f5a1846b5f6f982c9f7",
+ .fail = true,
+ ],
+ [
+ .count = 11,
+ .key = "33d9b710f65352f3246bb954bbbaad0b",
+ .iv = "bc38a7f76c4fbb0485adf50ae29826c91e3ec467551720bf7aac07d76fe5d64a518dc0e95e9b32c1da6ccff94b3badfb42b0f93cdf88cf911ca344f29158da8d5f0f1db3071cb55182910eeaa77cb4fa4333fd9b694e9cf1dbcc82850b87dac6ce172212b7949f2892e6cafa5ee014c1b0ac623bb59862c58797a7288ce3271f",
+ .ct = "c8ad3725e0c174b95936fada3594f221fb31e58b8414fcbc90735966d91009fa",
+ .aad = "feb1ed687dc1307e357f71329e26c206c6a481a4",
+ .tag = "30959949819c8a9131986e86ecb7f4dc",
+ .fail = true,
+ ],
+ [
+ .count = 12,
+ .key = "520626f28cd0b5a1afa80c749fd6b456",
+ .iv = "f44cf7ec65dbecbd36edc228fc668b3e3d3b9ec7639a5c16024967ff9054e3ee72affe23849a107697fdb78d8da5c839be309f44e04f3144bd1761bf35b0caca294df0302b25c0301d0c154688ea945e8e31e06cbffb67fcd3b8c7ce22aad9a37ab40ef89b794ca399e94c9d5d7f92618beefdc44fbfbc5e0fdd2e282dace932",
+ .ct = "72218609092d31abebe7d352f8abf0df0aac8924fe0bd3cc2e1122d1a80af814",
+ .aad = "c1577b2931d8668b9e4a065e4b490a544afde198",
+ .tag = "24f65ad6ffe67425f0b320a10a934710",
+ .fail = true,
+ ],
+ [
+ .count = 13,
+ .key = "a9bc8a0bb1fa23d90071fb25de08bfa0",
+ .iv = "244914065216ba9eb8f27cad66b330e4df15f5a73b5c08515348c14c6db59cac0e35e851c0e9d5c20948a932e07e63a6effb6afdfaad774e06db78d1a4c1b4ebc9284cc978e7cf51f5ce069c77631fc991f25faf38f076e59081cfd39a4d9e98d96ecb6b3d56979199d9891b069ada5ebc4f53baee7c5b821c43a0d73becbaf8",
+ .ct = "5fd1fff061a4864c22681d60a94d24f8d4efd632f582fc4da31a33ee175d6483",
+ .aad = "5bdc495830fb31fc54982c74d032ed2eca50b286",
+ .tag = "1552ff660e34c133cdcef663a6adf063",
+ .fail = true,
+ ],
+ [
+ .count = 14,
+ .key = "812ad1ee2d390c83be2f81570297ea27",
+ .iv = "94ecd1dc0cf487297a932caa35b59c4d6097e014e4fb62f520cc48ac9f52b52527fc63ef668d6152d6da223f05242b2e76b0a3b0e0a73a5ccf2092e873e9071c99cf5d188d43d71fef781caba9a6890c6bd60be02b4fc6261efd2c832af2eb2e58eecb168ab7f49530a8d5ed1703a368c0bf2eee005936a3d0b8459fc9b8320c",
+ .ct = "ed436941ebbab480e3814145648f10088c099edff7472b150738c4836f70feed",
+ .aad = "3bc94cec43745d3f611afeae95e0d771d7e0cb32",
+ .tag = "67127f522e992f5fbe793ad58ef84263",
+ .pt = "41861dab5b4c6c7b8d4d4632df30b92fa123a43af241beb6c9ad71221572e3dc",
+ ],
+ ][:]
+ ],
+ [
+ .name="aesgcm-dec-iv1024-pt256-aad384-tag128-key128",
+ .keylen=128,
+ .ivlen=1024,
+ .ptlen=256,
+ .aadlen=384,
+ .taglen=128,
+ .cases=[
+ [
+ .count = 0,
+ .key = "7c21e677cef97e2ee88d4c656182780f",
+ .iv = "29e44ce368ca8613c1b108b71f230028cd65cf2f2331df18c05f6fc9fe0fa415cd93203989dd6c5e4883d1871be24f51e2e39db5cbc1e1e59ede0576bb302d0ddd31c06c4836691bf63121f7d9b7e0d17e7775c9c162246bdd00bab8ca5cab46d906457788a7e683cbe4ce76ed6aca0efd4fd3f9eef2e9d6d38315092d875334",
+ .ct = "4e4b6ca8dab99078444db496cbfd79bdc39f7312661ab917838c738b638ea7da",
+ .aad = "0025eb726497e84d3f130342bb52e347f01ffc87d8d8396164c1586d293320e27b0583949c9a5a5236c9fab47f063496",
+ .tag = "b84ce4a31fd417618ce05e5a4a756676",
+ .pt = "6de3339e93afbb15c1343ac2ff9cb75691d6cfd4fa067fbfb8584ab39a4a541f",
+ ],
+ [
+ .count = 1,
+ .key = "0d67170f10acad86a527e8c0e8d0b116",
+ .iv = "92e5250f0f1937c3290a58e60b7ae2a62caeffd4734d14ffbe3a0fbe13ccfe939bea3d6e663a54bf2dd0a03820b5d75eeb9a1a8c27c0151e6f4b455b0651803d56ce068454866a825f72599fefdf7a68f5c18d25518d7bb0bcbb134065959cb95c66946f1f88eb2642aa655a04113056492b10a5421411c47622ac5683fdc6f7",
+ .ct = "5810bce12bcd9bf14f0401f0b02b90194972a2b405d494833c6745455574864c",
+ .aad = "3cee8d896d7c50098a98369e889df5f29729d816dc5fed358c5ad388272b33d65593d7f9c23e37258e7e8c951e2be81c",
+ .tag = "5628eeea17f4f6d9def1baf83e04fe6d",
+ .fail = true,
+ ],
+ [
+ .count = 2,
+ .key = "48f1a933f251cae737af21978d7fea8d",
+ .iv = "fce02ef20975f699a39adac160275ff864cd4f911dc05334dabb7090ab22d95178f11e763d195ef69f77592ff40cf63add51ed933a0698afd7c25ea9addae98b6102cf90e1d3cee91b1cd270698637f867197bbc9d992afc90e7ed0be4329d2f0263e7a073588084179595e49e20bcc3e34d4f08041ff7080db9cf29501550ae",
+ .ct = "97b88c52492b1c8a72fe57bcee55f1c5fb7c1e6fa87eb3068fc9cbdb4bbd9b6b",
+ .aad = "6f3c7573d195e9c22f52dbe09cc77eec246fb2a08b1269c181756dec6bd15ff00a191ea837b74fa96e380be7266fb514",
+ .tag = "1a81948bf51609b1d8f40406455fb688",
+ .pt = "f80e05e4122fad9c8a1069f95f723d24b48cf1668cf35cee5509f2080cc1d032",
+ ],
+ [
+ .count = 3,
+ .key = "c9b8f84228e149b0ca8110ce3e528a27",
+ .iv = "abe1010dae56e302afc7fa4b7d48a243b45cbc5a2e6234a8e64353d494c6619eb24ea9d5d2f6ee7dab23c0dd4325c716fae8648885408df787bc5a3b36089693f8753290a62e205057b840b683267342aa691ab4a6c45b74c82d9926d2e08c6945cf9bc2b0af64c748bef4a566b9107b7f069d55636c94da158b578ae764b285",
+ .ct = "1d5d3fc6d7708ec1edac3d3daeb09198a71c916f7bfff5e8e9cd99bc4675b5b1",
+ .aad = "99434a42edafbdff05b22a00dda7c4f468dfd341795af2da06497df7513be0e3b946ca815996c3fb2db7327c73b52bfa",
+ .tag = "2bd103e844e85d37b1e26f6c8237f51f",
+ .fail = true,
+ ],
+ [
+ .count = 4,
+ .key = "16cc20239418a46631e5a51da56cfd19",
+ .iv = "e3b8ee32208ffb3888ec210b198d3d8afe3568f33dd1cc64e6902ea4278785d90853158a4620eacba91e24e8fa9fe4bac3976c0c6819d9cd8f22bc63dcf225406ae737b5816b7214892719218d87e7d1e3947e0e6528122fb55a2119a6d2b4291e09fe22f06ceea4f59f18cf84165d218b476e6edd764c422d217d0d239a5d15",
+ .ct = "88f4919974789f2e513b6b678e2eda048d4d76a2cf09ee0ad437b93ea556ff52",
+ .aad = "3c2de889d6e3d6dc39c301f9d03c833b8fb117d347fcc9fa867c680fb5c56a4898e102bdefdb28926041a82982a61358",
+ .tag = "c53ac75e53e923571c472c33570b6f27",
+ .pt = "3d2272c222debe03a303760a10cd6e92fa754f75732eb0837ee29b15f43d8211",
+ ],
+ [
+ .count = 5,
+ .key = "0124e8e17cad402d4c9a8658fe8aa4a7",
+ .iv = "d3a3a6f004a51ea49a9176b8b05c9b2b4e4a0792d5eb38a62deacd91785743bd60f4f8cf5bc04a8f25eb950f8d08486b4eafaaefe28d829c372e24327cd9d6ea20c26a4a6893a7b598263734941820690043ef7ae9dc51b7228b1766ff681d1420d249f7c963c75a88cc8eb896ed551abebb53c60f19330d5aa6c220094ddf17",
+ .ct = "2f3ba2e0ab2284c100e8023c37d4b545be9e04ac61ccc66ba0bbb7a880b1f5bd",
+ .aad = "05a8530244c048b5fa6e874fb8a172a273416099e058793461581efba847bb8d62249e6896231c635419c2dfeddd5234",
+ .tag = "6492e31f959364b53f6d57b9e3fbef44",
+ .pt = "ab7eb8a0e80bbd984117e5b8797ea0344b29c1067f75821edb1b067b64a2eff4",
+ ],
+ [
+ .count = 6,
+ .key = "fa5c60cbc29dd8e9261ad25a1e5503ed",
+ .iv = "b3b46eb71bc33d8eaf173efe415991cb87390e6f31a8dd07fd9490fa2b0bc03e31f51223122c4c2d9e6db5e60dedd855ad0f20be8c308fdd49a16a0c962ce8cf0b222d1f225f7eeed9493660f572b7393cd8d7c1f7425d9e227d80e6ba2cb533452508d25faa85128545d6c34ced16e4cebb96a4e142ab838e04245b74ba0c35",
+ .ct = "aadf04c903ed1c98dcb05c4b77c1e0988f9d3150c801b128dd2029f8e4a44b0a",
+ .aad = "5c5c850776bc1984b69326285f53988de56cd6e43fd0605cf03ded15492765934fdffb982c369a5026111fbfc170e1fc",
+ .tag = "b5fd6f581486c32b83e62cdd92f1e88c",
+ .pt = "39a9cc75a811239282a680c35dbe93407017a0e20567374d89a8c352aa8fae66",
+ ],
+ [
+ .count = 7,
+ .key = "6ed93ddd5562ea1ff34c4fd4b37c8f1f",
+ .iv = "fc55d19e1bfdc4d5329780933b9f3935be955a648e403573e23bbe15cd3bbe4fd2bf81e600c0532ec717f747c109c2245e3e3ffd6b83accdd1e092c14bd1b32069152735c551620742560eb455406572d9fad59cdc3845e5612da0b6764a144a2e2d87e934e0ca20924cd2471d46b333581fd7897cdf458229cda44f4e4434c3",
+ .ct = "998535879fbcb26dd2f18c9291cdb87693e74b805486fb4a86547ea5ac8ca0da",
+ .aad = "83bcaf6d6ccf7fc1d4206a30626d9d8e979d487b36ceabcef476729a626783bd9e2b017adc6f7398aaf15be0cb83293b",
+ .tag = "d3a3942d1ad0e8e6701060264fdfd972",
+ .fail = true,
+ ],
+ [
+ .count = 8,
+ .key = "eefd33e1a3eac35a33a369327014b8fe",
+ .iv = "46db36ae1800f7a7b83834fe2fa029d0559f0cd7cafb5cc887d8993d03391e81f2f6c1704d9e317521f1c637b181e62efbd16675277557f9b1a90b9db6fd36c9bc715a0fbe32a0d1745da6d701e147a65a5f36d87fc31e07746156c72dfcf06da172eefff387874bb7b93d0a1cb64ba4711747f4d4cbd85f2112d581a67163da",
+ .ct = "845f27c332680c696914cfcf40ceeb494a630d671ec048c42dfa31a72caadd6d",
+ .aad = "90fd6b78f50000539903778e62ee96b8298d1c676ad014fd01a27903a5d2610adf82a93300495b9c019e09c6ed1342ae",
+ .tag = "0b4dfeff7dd98ab7b837479f86853194",
+ .fail = true,
+ ],
+ [
+ .count = 9,
+ .key = "5cc216f07c58cc94762df06352e588b4",
+ .iv = "f7e40bd8a1a19a86975a2cebe18b4a9e696d4ca85482773c1c1cb7f7774c31561acf6f55727fbe9560a27185318097c1cd08f55f5545e87d7b93c9378b423141254d8674df8fcb3b356dca7bd9e389a57988bc45cf26a61cef38d0b698d8dfaac347798d3726ec230ba8a221eeb65812bfe6878f862e88a44bbb269dee995130",
+ .ct = "ed8cd67cb71f09dde35ba55c3edc61e2c5b55cbbb3814fb3bd34c76bf138eb4b",
+ .aad = "56c693db368912496f021bb44d6e58117e90e0fd3f00b08be1298f7ce6c55b2567e8dba8ff77ed2bc9c6b92f257b6d5f",
+ .tag = "d9d9498eb867736185e851cf36f3272a",
+ .pt = "b8bd9ebe1f697bbe88ebf12dcdcb0365dea5432d5736a305917467c661c5dfb6",
+ ],
+ [
+ .count = 10,
+ .key = "3e123766bcbd152737e190e4725d2f3c",
+ .iv = "cb0ac7ed027605adecf4a683c413b4f40aa02b6c7ab23c8964cf072f9a10b7ba7b982359d24b782b04c2e1e46c3ec09c750066824e462eb729b1e026613170f89459a13e4268f5ff3a334ee92bba7a13fa69e359172cf9a407d8d20ce5fb09a9ab2574c3c1c4d162154adead993301a1ad8059fb969f0ab9a4cc3373733b23c8",
+ .ct = "208c5bd60487b8eb1cdde91330dccfb8020cff0da392442946b74fda92d04ee6",
+ .aad = "475bdf3bedfd3b106bf89a1904193a58d09038ee1b161c0976cf65b20a738138c62d2fc59ca0fff1a0169bd926e381a0",
+ .tag = "3e0e605a73e99097d00db15c1d0d07b9",
+ .pt = "90dde77bd43c487a4727e353dcf597cd81f5373c28e6aee58d931d0088671c40",
+ ],
+ [
+ .count = 11,
+ .key = "38c8abeb6c20cd886ac6c44873f9643b",
+ .iv = "0f8da26f9a2857ace2b9b38423ae1cfb95abfecc702a679cbc205a03148271c9d22a3f552779d614f59e9a02efb446d5b59c50a6a90b14d9508fdedc3a72beee6e9cf4f7fb109546aa7197a9742baed26b219fc85b0ef590518add87aaff5c01ad48f1d431c732a7b575bf4acbf58d845f5336a544dc895cbf83691094a6bfa9",
+ .ct = "b1f521cc15801e063b1d276b99298961535cabd751949d90ec29e5fcfe665a2b",
+ .aad = "b3f23372d57e185fe0976d2fa0df3f3fa9d1bd7e8fc35dae86a96339aaeb5429af7a1c49c045beaf080c7410ebcb24c1",
+ .tag = "0bbef392b6fe736d2a083d7ccc6fffa8",
+ .fail = true,
+ ],
+ [
+ .count = 12,
+ .key = "c7dd8200877c249b67116a8242ec354a",
+ .iv = "0181c48f5a40d92d5a44c769b2f919752adaa1bf98a449e619553cf2a06b6f9ffeefbaaba366492fe7daf511fd2907f7a6160ed0df3d80a507eb44f157d84904e8534bfee37ed38ed50044a4875d5da1f60f28c410d1e06e43c6459c96f0dec583a375da6d4f2a372c42276d8b5489147790b5b1a97f4f545ce088e888414eee",
+ .ct = "3ec9c6a28782ba3727e4933c150e71b97ad7e0eaca95b296e8405092468a7b61",
+ .aad = "ff955b7d2d17eb9d9038e8d939a35f09feed6a0c7ce8581e95cba04bd85113e87e9a637f3596446fa02a7b04eb58d2e3",
+ .tag = "ec642bc38a0a637547b79e5c230bb40c",
+ .pt = "4582637e9a5b3485ee82a4aaf086583d8770f9f8f86a419cee17033e060d131f",
+ ],
+ [
+ .count = 13,
+ .key = "1975bec42d37442fa725f00bb6b31d54",
+ .iv = "8fb52e59f087b7ccd0bd491be3c23091dfba0278edacacd37bdcf2d0ba29486dda130f933a5fcc779f157fdf134f4a640b1feedc2cbbddbcc79cc7173ffa553a90cab8199d645c99c9e8ca11aafcad8834f56f47248ecf0f321163670d5a1bbd06fcfc5f2b29d13f3697e3bf6998da383935ddb179e158794960b7f872435e64",
+ .ct = "44a6bdd182668c540707421542cb655448ecbbddb20e8fdd3ea1e1ce7ca3aa7e",
+ .aad = "22c6d2c373ea3ecb4bef80def20ed9bb920c14e21dcac35264e89b02eb6e464b9a0d4aea177abe2c7d8857d9be8d082f",
+ .tag = "bee2420640fca77f93ba44ce6705f018",
+ .fail = true,
+ ],
+ [
+ .count = 14,
+ .key = "a28540e936659420c82af45afbef50ee",
+ .iv = "c34f030927c1e41998813e48777837b2a8dbb92619903e94c0059b01bbfdadcd7b843171d7e494f178aaffd59daf72ddbc3b235edeee709182abcf9c5746eadb9cb013e5424f60ff43eeb28ce670a832204679301c9fde711cbd9f100efdda40b85f157372da2b82b1ddade49b2746257d5e9d856c60aadca3cc48c852eb9aa9",
+ .ct = "3fa00234bfb23207d1ef029110fb184af85519c51eb3a3e9d0c5dd1c59cd3143",
+ .aad = "c0df11871b745a3cbbe0d7dc81608c2cf98b9834ba1258ed63aab62f13b3bc603a409fc7766e0c393c946356b63905fa",
+ .tag = "d9bd29bfcbc9de46403c3a07fdd66049",
+ .fail = true,
+ ],
+ ][:]
+ ],
+ [
+ .name="aesgcm-dec-iv1024-pt256-aad720-tag128-key128",
+ .keylen=128,
+ .ivlen=1024,
+ .ptlen=256,
+ .aadlen=720,
+ .taglen=128,
+ .cases=[
+ [
+ .count = 0,
+ .key = "43f8c5f2cfb69b52b637b91d4ada4eb5",
+ .iv = "b4472b80d8e7454a93485a0e50c62467b40821785d3f1db15ab36cde7e337431288f1d5fa703e309cdef0f0ff83731946c0aca6a1bff346dc3947218c4d88cfd6791d69528f04efda1f7a48d144b5221fc34042d6f910e83bf3d2ff0e2844a2c8060a72e04bef456237a354f57120cc6cdf52f6936cc9c4216ad526c45b29b8a",
+ .ct = "14b31e33d35277626e7aad7a2d64c484c56f409dc19c609d7a999594a144ec7c",
+ .aad = "bbf7a4705307d8886338024d1c5c12d4e72bd5d87a3c8e830175c443cf262f18718373ae94848463c7147a303d16d11e0be488d321b35caf1c84c23b136396400fac2f90bdf943ea8b1cffc70ba298cb52b68c925835a5ec44fa",
+ .tag = "54008017fe1b7d8c5366fe1715abcf46",
+ .fail = true,
+ ],
+ [
+ .count = 1,
+ .key = "69168a3dc640dd9f4d36f9b87247d03e",
+ .iv = "ecd446026474ee9f31e9b9b4ba818f42d38b4680a724bc1007df3f9142503a4e4a5254e3778f9ba992ea1b54e1818527c4f92cf8dc114dc8c7a88a1e6e22af9bd7cf8fb96b4a6cfa4049aa57cd15508075f143e252a0831db28f997879ba06a71da245ae99d8f1b0b75eb8810afe9792e085f002e7d66639670294307c32470e",
+ .ct = "d9a1a13d2076f8c7c9b5dca386f51785fe8bf780c722db05817b7be201954528",
+ .aad = "fb219d18ffc9ec9acd9a332bc7f812df046ccedd99300b1d0c01d8daa0047f322344accf0fac956d904d0f8a74c09ca431d93ee0aa662f71432904fbba3c113ead9f1d95c078cc431b7d43f3dab029022ad8f43fbc019afd0532",
+ .tag = "0c51bcc0328f472b663083815d7897b2",
+ .pt = "b385cb3171a8464fa74c32e182dbf0df3ef90e1963490414f1b4f25ac6b2e9a6",
+ ],
+ [
+ .count = 2,
+ .key = "26799d1429e67fbb450f454992395e29",
+ .iv = "8a566cd99c1d00d25140198ed9b1352e7fb6c8e44a37c64c1ac3765f3b4a9ecd021217705f9f071b9c2ba568e07976713bf1834801e9f0d01c577f0f544b493b9bd67e92ae923e06b2472db4fdfa7e9e146d71158fa4f5cff5757e13b849de3ee314285e2d6b65f23fe133efd9f336868bfab930521cac78ffd35aa7e8dc6801",
+ .ct = "97f5d40034caab57b6447f4d04b0a0e976901066211066c972b35412861a1f6b",
+ .aad = "4698bf48bb6e9f97d7d0ae20a875c5e5ee093e55c6b0fbff1170e190a5bfd1a88d6bca2343127361007f45f9273e7fdb50a0a59af36b2ee972deee5de9d464996799a650aea4eb4bdfcce0f2f8352740bbbfdedba814fbbae044",
+ .tag = "7a92bc28732f710dde30be0cd5f7fc2c",
+ .fail = true,
+ ],
+ [
+ .count = 3,
+ .key = "653396469a651428f7c02214a398b24b",
+ .iv = "983de428379d67cd3fb4cb3cbbc3f280fd901d41fd473eabde17ea6db147c58fba0af09571501fdccbde2110f95519e41c82f9c1e998319f85ccb6da172a84014018c3ac507169f03d19b1d31a7f22eaa0dfdf3adede659929dcb7a7f1c452eac34aba4dccb3ff019fb922a241223fa2a78dceb4f96ef08fc40b85d99afe5efc",
+ .ct = "f602de398ea1e35617cb0ecf4a88ffa3e356a8e9767c5460e5a0ef49f6c6a305",
+ .aad = "482f636fda54b0d649d9a7c33d3786a58ef0e7ad6a9c8fda4098243293136956b8eaaef8e162e24cae853824b54c2d055e6380f8cfa811a6565a27b96796c6477f632f79db8120de9ca4fd9b1f338bf4b379614460bd220096e7",
+ .tag = "307dee3921d7d168071b0e933191d7b0",
+ .pt = "14714d60e766c4deda7906ffe03d6b55c5ff53459a2c5f0ffb21d1460868ab61",
+ ],
+ [
+ .count = 4,
+ .key = "1e73abf695e4139722f0cb8b7deb7d97",
+ .iv = "8418573568d894b0f60e2b8444a2f4cc488a56f74ead34bdb6c42fbb2f8334befc5ab6583b367b6e32668381bb8d6329e68e974f3f7c847a9ca3ba9eee3f57c213937efc8c217f9fe4b3481e3d59164ba852b8f5da9f63ee5256c3395ede3b1b90de46a77bbf9c774e5bf14e380c40faa8cebe0fe78cfa6a8436f12a8b8b9c00",
+ .ct = "2bbd8561bb3e373215237597a82d60b99ea13830969eb1aeb913ffb994001ad7",
+ .aad = "6fd1a165bb8a34ccb7ceb895478336c5d6b0d591d05c21ba49e0f016e10f7b1d94d3fbe9d1d2c824eaf1a3605331cea9eebbab59cfa6ce73d35e99c5a30a93496436fd029dfbec41cfab5f3a4a9333a1103628bc8a4f1498bae7",
+ .tag = "5adf51340b2796435fc1b617f14a93f0",
+ .pt = "2ac08383451098f4972396eaf11236bec131345d3711d17572f82073461226ff",
+ ],
+ [
+ .count = 5,
+ .key = "d922ad525033d0cf0a67e759fd1d9bc6",
+ .iv = "b6422002fef97139ae491d67ec04f7676981e1f0d9274c5f9900d0f4ad101c82af985e806665daeda06a08c75b47a29bcc481aa819a3d840294f965314d54d5f028f41b3246ab0d617032df0abacedb890265b1fb0007b6bee8dfaea28b6cb400ea4a57fd5a5a24860426ae813a5c89ca13ec778a9011aecc9c769a1a12cd817",
+ .ct = "30da026efdcf6b036b5d90af5d13e978207d07233e28993fd136a13f03c2f3be",
+ .aad = "bf834d7cc3deaf909ad87bad77fae572db66bcb95441f160f579d3a2d03076f8eb8229c10250c89fa487e009ed5e6e1790e0b98c67783382bc49ae4f3a74587e978a00494450bc62aaad73d5143cd14e1bcad0c16b3c04bc81c3",
+ .tag = "de7c51835d6adc4348225cebf470e9d8",
+ .fail = true,
+ ],
+ [
+ .count = 6,
+ .key = "02094f2305af57e0065af19494f02fa9",
+ .iv = "f063a16943a32b1ce80d099d3f001c95d00a00582605f86510444e63754265c691b29e2a42d5fea35491bdf016dd5a502ddb50802afcdb49c589ed4be7bb27287cae5c77341becf048e08cef44d7b658dfe13a0e5de0463816c99e6f675f19a8208c7a30413a6d3e9191a45d33b0e7f9f3b34fe16e8967405d399abb1fa8cfb0",
+ .ct = "ec2d1249dae0db24a063f344ce818eaf614d6793ccceb0a64a3fadba620b0a64",
+ .aad = "e8fc66d7a8c8cbaf26ee69ef8f4b7931d3b0184163cf73581927d36fc3c772d7bbd7cd6dbc5bdf4d60169a632f99686baa5ebcf71875a6cb13f33608db677e29e5d0d41e9b7915bf517b5116f1ab4b45706fde6438364b01786c",
+ .tag = "225dbd01298323e6b62e240c68913384",
+ .pt = "49a52754233ae048928feabb83cfbabb1b295fba20b94e355da26739922020c8",
+ ],
+ [
+ .count = 7,
+ .key = "0014b529b5c82caf7d477656bd5738b6",
+ .iv = "802bfb6e7557ca4d46b173b6857fc8ea5622ce43f82f11c95b570ad53d15affe794f0261cbcc760f8efb4a43ad8bac76aeb50268cdb26d48cbdb21af5dd557db8f4445b0a85e045e0941e484bc197f42267382cb8e6bf578319a5f847016bd3b893daf1a856a267053de2de18fb4a33f21f6292f358a222b7a0925c421388b27",
+ .ct = "739aef2838cd0d593c4b55ba1ae7d1209940eb39b1cc0487cc4c80c8af959ad3",
+ .aad = "d81e7e60e1c9290b6ce0a0ca598e3bd953e217431cc8eced945560454fb0fe524f81535869d1dd996fd01ab5a24d9d9d136a266f889099b9e2c7a882728e48966b54a8f2ae54c130aa5cb8cb5ed11593d2d469bec43eb2bdf82e",
+ .tag = "19f8ddca2b217a673b73bd2a158bd952",
+ .fail = true,
+ ],
+ [
+ .count = 8,
+ .key = "80333b48e87b175ddf5c6bf244f5287a",
+ .iv = "ed405d0c183623f43ac0a42cea0bd35b96509e555f6c296b7c12fb7e97101e2f05e077c2a209134506fc1da509d81a549bf8c16182660026d3ba3d992c2b0a83647577858fed639d7ae2ea99283fc26ed4322697742b2a9131e69cff6001929eb91aca5d3becf52a09c9155249e5db29ae4bb116bae8379d2404c3c955d01eb5",
+ .ct = "d7e7c69e2e920702df34fdfd00c9375f5f65c21e7f81fdba8d6f7a9d6a9084dd",
+ .aad = "e292773f70acbd60e3ea0a9711cc419a51c7504a0742079655b1a250822e7ccc6eba0f4afb982ec5fefc02466e2ac6dfb9ad86aeeb7759551494be37a67437323a0f186b0cfa48b0f562305061852885e84520a1f82911665487",
+ .tag = "ce8940ca98655e127737549b28e9d96c",
+ .pt = "0b9a0067edd0353dea4e8a90603c68437fcdcb1c7d8f37971b7deb712b5cee3c",
+ ],
+ [
+ .count = 9,
+ .key = "c15c24b695fa1020512b840057fa0c87",
+ .iv = "a0598c0a1d5a7bf20dacfdbd37b80ba693be6045ba09f2b158c27fb904f9adfebbc5578ea7e3f4a64b6ac35ad9636167c8fb8b7f791a36f1f1537bf9cd64c4f6e6b3400ef29903921b20a1f123f4efd131f9828e7a801205079e60cea7081d5c7b3cb10e2d9e7bca2b0315e22f7b2c9993e95a42d0fb75ca91a484f1ea1f7870",
+ .ct = "ee1aade00713d6e62ec519378f8bb62ec8bdd2106c6de9903b2f40ad011fdaf6",
+ .aad = "2df9eafdfa31be3a35861833f87938e77d2e626f3fa3ba42659d7b8545f86b3e044826c569049c622612c9ff6f0cdf612f2af95aae38d17b8585cd6b67397a98fd661b874d71380ab1cf3522a8ec8cf12af25ee87d867e6c0c7e",
+ .tag = "f0f9b365932e7c2808402ff2d7b14163",
+ .fail = true,
+ ],
+ [
+ .count = 10,
+ .key = "6a1d3915c5981085c35dce3f7d955d54",
+ .iv = "cd371fe0ee69c57263db34efb853aaf094680f71559ade0e0b2d535a74024af5a0b53afb3ec772f7666cf2dacd2599dbec8aafa0be407e9b69db3e09916cc52fb8baa337e5f53a26a4fcf0cee3f8f4f852e460799c81213c38372d53bd9d40c39f529ab53664aee4bfc295d893254436904e8c5543d07264bb03887e7ff58c08",
+ .ct = "6e72b54fca1e51e6a39164966ce9632ba64b9435d3cbfe08617cd548656ab02a",
+ .aad = "e9aaf03b80c3f3e11060542b6b6acaab780a0e5b78c643d5001a4a3a7a680bd1b9cb69c5b7fa9f4757d382ca79b8c908e96be1b56fe0aad0c2c13cadee99c36eefdd1a67c09189366d3170d7e3c8a20f7702de94a4e1b2ab9c18",
+ .tag = "9d706849917dd7eca0d55453119d93a5",
+ .pt = "49b1ecb75e0a7641b6209d92b358d4315aa09252e48a9bafb735666a7b656114",
+ ],
+ [
+ .count = 11,
+ .key = "c33d409a86e06e7c5efcd19e4004dded",
+ .iv = "388b66f45f69356bf1fb1bc9acfe01005d00567255b5f84af0d0b25de4a1012316ac756c74f0944e8a139dcc920bef6eb50f1cfef5a278e745288e0ed3a303926ac80d287527a9b36f039b625512cfb74b68e7d0cc29ea3a944642dee35b2e53cc8023ef06b7243fad1eb1f023bbd6b8ffaa20be6ab3e11bf9549d59e6460731",
+ .ct = "9d739d6555d66bbaa7f27a04df6fe00caa2e7bf448110388d44ccd527cdb4126",
+ .aad = "c311f07650d751227364096d29a5c1bb39170938128072bcfdd3a2bb3ecfdb00da448764b40c38ec23d852bea79f1f4e7b5ed744eeef5cf8c8d797fa8cdaacbc42a45c330cf8d401b54888396915ccc603dc34c9f81f7f9ac5d2",
+ .tag = "eab66addb1db35509731afdf9d7ed66e",
+ .pt = "858cb9f281d0213c347a41b00bd740ef8c3e4d59f2360ab3b3e3c48d050f37a7",
+ ],
+ [
+ .count = 12,
+ .key = "7f72e829ff54449fa1577b878b94ee4b",
+ .iv = "5588a84026b5d8360bb4a7f8daf1d7312f1dae4960b3eb8aba733501c32fef9bf42d72e342dc5d8553aabb4f6e93216d0bc6fe57cfb11cfb924d8959e6ee1eb320608ff0cf725bd5830ab3a4e8e2679cf23612d415c71e9ebf010ded9f827a9d2e15ea971de3902a7641cbf98f4ab5939b4c122e5ed034e56b348e23e26f3ede",
+ .ct = "d81ec60fc2ed052e3908fd632da634f987704edbae5f4e858f8ef7bc3ac54900",
+ .aad = "3421c4fc1aad9825eb2810b1306c00aad0a61ff976bf3e3fe60fa9ef5af482bc6c30ef79e0d431f743ad7188620ff30db25e06df25efefff4887bf6f24225ae28ad981929dd1e4dcf3e526fa479be62561ec5f4dcd3dc2302271",
+ .tag = "e2fdf6db715680e3aa219a1beb28340d",
+ .pt = "3eda77f747ce3528fbeddcc1f75b17eba73128f2c3d136732d1c571c4aa04458",
+ ],
+ [
+ .count = 13,
+ .key = "accaf65192867a2709825914214e6701",
+ .iv = "fe7fbb275da0ca0c76af867bb282d54eacb986215f70e5d059f4ccd9123a3c84263d40418ec79b43b12e35589791315f79ed8c8a4ccc996242d7ffc7812d700d6740bc4b4dfba94037f81178377c6c9d21e984809df5c69aa941667febf918991c6c13245e8841cc0696b9bd107b096e3fc66b1ac54fe4ab2d4b861475f22a18",
+ .ct = "c9f65266d21baec028a921be9b7967f7d96c8189e99a4ec6d8980d7e36385a6f",
+ .aad = "61380a1580bddc74dbceccaaf8b94d16224b678b944bc250b8f32d1e365aa12d4e2aa862fcc7514cab54a6690ebf4716fc91e7c06a6f3e7652c939bc87265eb06322875cc81c7069a0cfb5aeeb669748d2ab2702a1469ef6a98f",
+ .tag = "8a5caad213a46c552c159c6b6188c37d",
+ .fail = true,
+ ],
+ [
+ .count = 14,
+ .key = "32bfaa393d10ae37aa4cc0a93f92390e",
+ .iv = "eb0ccdd0295a29eec4d1b2e80013108d903734e45abbc6ecf8cd460f8dcdb3220f1a052509a608c012cf16069ea1959ae11b1e81a8ab6afb6d375983292e97e8d74a40b18aeb803986f1843a228d9d08799595170c8b1374ca367a29f1e7e9a66ebde4327a68d3553290b766f84ca3b1ef754b399e8469d6bd926dc37e266831",
+ .ct = "8a68a722fc14c51fa3541f31df9cb999b0b85c5dec5d63f34b203edc2d075091",
+ .aad = "a4a2b4b307205a7d749d1a1d3e4d1adb095bec5558e5fb655a55032c9fbd5c02e3db20e776e3cd1da077ec30a5eca3d2d3b719e5e310c2deeb4a0ab47f09fa96b0b10c2a8af4398fb82b8e8a77b334b276e6c91f9d8f5bfc4fcc",
+ .tag = "d327f7c76f0cb829732f86ec72c8b727",
+ .fail = true,
+ ],
+ ][:]
+ ],
+ [
+ .name="aesgcm-dec-iv1024-pt408-aad0-tag128-key128",
+ .keylen=128,
+ .ivlen=1024,
+ .ptlen=408,
+ .aadlen=0,
+ .taglen=128,
+ .cases=[
+ [
+ .count = 0,
+ .key = "24168b48b45759c8d4f9b061f0cbc16a",
+ .iv = "b8e5ede75254cc4542191c7e7b0319ad81651451b639caf81c81c98301a4a0af70e291a4e35b448917be1e400fc64a22edf32913162558c2591ee3e80f397d73dfbc68b82da49bda9bcbb6aaf26919e21c1773cf51f6c5b71784f47978cc0d593b4be0259ab22b0b48de733a884c50a8c148c495973a8f5f84f2e93755666bf5",
+ .ct = "be19c7e3d3e63f73d833c967d8d62f388ab9617a2adebe5abd99b5ec64599c46bc28bc62770e08995b0bbf27089e3e17b80424",
+ .aad = "",
+ .tag = "4aec633d4daed9ce76d697c11f66f34e",
+ .pt = "cb7f10bda7da8a2569ed1f3b667127a1e0fb197283aa16ab8cddd43186bd126b118e671cab3e325877fe0e79f1863f89122c8f",
+ ],
+ [
+ .count = 1,
+ .key = "123e6d0e7a13ef97da011db953ec8675",
+ .iv = "e863681a4a672bdfefcd6689f9cab2eddee4d729ada28090a87ab2d9125e65e19cefbed73c7c2b1c81dd44e90a39ea0f17a498f89b50e3b305da66bcc4cb92433953f4e56a07d5cf866d850992fb6bc86af1e24cf292ca815e30272df7db7c64273fcf5be652b627271685a7ce6940e24f80f459132e4abbf1f17232f9b1bd1c",
+ .ct = "a76ce6b5feb1173f585117fea7988d51c71bcae1b19d9d083e67db988ac581a3a28db7ffc243719b73796d7c76a3efd75b16c8",
+ .aad = "",
+ .tag = "96e6f800457221aefb0764635c090c75",
+ .fail = true,
+ ],
+ [
+ .count = 2,
+ .key = "1e56d8d5659828a67a2f30b2d2d9f116",
+ .iv = "f78b96d125548ca78a10686551159417106603b2393d2e724c54de8b389bc8abc5ec8ff31fa3a301355c991a4d6fab4d78484b53259479c750dd21ced50f0f819805367f1c7a3bfdb5c9e05579fdc9faba68f34ea9b4504e05d883b60692ad1672c29da2806289318efefec921bd733bdf3ad4fcd5962a1f73854d89833754fb",
+ .ct = "2601b487b028ec463e976817229cf92829535d1a806b95035d800b27da979fb43b83ae8c955d2931d474ee74c76d2ef155f646",
+ .aad = "",
+ .tag = "f2eff628d0dbca1a549dfa5303b3ea3c",
+ .pt = "a978ef33c74dc072cf9f2f44c6304921ad65bdfb09e97abb70bfed0e69f31d020d48102694c9768a3fbf260d0da6d8c789c0fc",
+ ],
+ [
+ .count = 3,
+ .key = "246a2c464b8b01eab0c0572c8c35ec3b",
+ .iv = "acbde0c22201c75a21de5244f48928012569fede8655ee6cc4931b973a69c31b86585bafb801414c5f69ddf7c9e71c723e0df945ffacc8bc107f9849897db4b5fe8a02caa506a10ab09a347ece07d7e23a1c8619343672b0b4639c8337c3c43c0d11812bbd3fe12878f060d3beebcc1ff3fbe6c909d328981de6c25c82e6e2c6",
+ .ct = "3e89f8658c01315a211724e6b216a65ca8d770c37a833186ee595de1d5e99885b85d6c259295a3a9803e00a819d283b38999b3",
+ .aad = "",
+ .tag = "d80ad5ffce1ebe6a70c2e4309ddd5e18",
+ .pt = "d24112338e3504a0034bf183ddd743c1edd648debd92a98fb4f0f64c55f03ff95e592bdc80c67ecef3f4faa34c6234284a3e92",
+ ],
+ [
+ .count = 4,
+ .key = "ae7d409367f71358db93a0c7f2e30979",
+ .iv = "958cfe945f50aa1e5ba723c6ebf03d845d21253373871e9dd0af58cfd2298795ef53ac0078521889c5507a304ca4b377c821c6f46b8263f895df1f6ccea7aa7c6dc5c37045edb53dd7526fc0ee30478aa4da95bfa920f764746d035f74a7e317f722e2c7690de69d3032ebcc53e5d6b2e756e4c72369f6ce7270c06290ad3a0e",
+ .ct = "961ab2042751c5af3fe8c8c84a0a648afccd7538158d781e2f419731b1963b4289d902e697399d345a9f963a036fa09b7b4c5a",
+ .aad = "",
+ .tag = "d0d248517780892789e56952b2439fea",
+ .pt = "ce8ca0891f941c8e72e53990048aaa54dba3aec6167c0101dfb80879402f0cd246fdfd8426fe61a686b394aef3e7fef12e25da",
+ ],
+ [
+ .count = 5,
+ .key = "111e37be62fc19b2ddfadceb39e29655",
+ .iv = "20c6689c8acc72539cc1132ee35b3cd980b13b27a4304d6db3358d4817de7d0d27894d01ab72026bab35c6f2a417fbf5afdfdb7311ae8a97eeb3d1ade9ab9b3cd41580c1b831c4ab6def370131ff55341598c934d67d31fb5e105141d74dafe42ad9b8320ad19af1012dd803d9562b4ccb952e065770365a55361332e180244c",
+ .ct = "c84c5c4d7522cfb74df8a0f80d91245801ef483c6f6616c6bc1932d6c74b8d3aa6c0f9c285f3bae02c58fc40fcefdd1e775b5b",
+ .aad = "",
+ .tag = "8e87b1b2b92fa398bb44fac97a8b8fc6",
+ .fail = true,
+ ],
+ [
+ .count = 6,
+ .key = "c49919b85e45533423978aa4a45b4cec",
+ .iv = "236cd690ed7eddaa68ba408c2c51815828b93f155e41499de49a9c788baf0009eff6a19cc5f32659ea8d63742cc81ba67528434fcf1fe5ee45fcd1a42027a7724d607b51472c87750e99515ca570c75546c813c6fcf19a14afc1d0a967e79ca7f92530fa1dbf06b32f6769ec4cb7daa9c318216834eb2433e1fd59b8021aeaf9",
+ .ct = "d2c3b3e7200cd2fad990dd0c952e9a5bc3bc49b2535b89d04cd834a92f0f06ffd398baab33cee1b5bd7b0a430c5c69768a24e1",
+ .aad = "",
+ .tag = "933b3fe6ebebbd3bb5a45796f5c6a94b",
+ .fail = true,
+ ],
+ [
+ .count = 7,
+ .key = "8bd1e4efeb9942556b91c484eedfb9b8",
+ .iv = "282b852993efb25d520aac227a953bf7decc99822c5c39be1cb40b6368418bb3d65bec4fe66af1a9f3408cebb4c61275b341aab00bbd7b9427366243887cd228c8eb4a856fd1e631d2cab93fc5f1df1e0a8e10b58b546a7df895a2aac89b88022d358351f1e6d6482dba2f63f571b8eeeb6a90c3ca9340017601cbef539f3edd",
+ .ct = "fc18fe9ed8345a091594061dfacf8a93b193e726dc783de89928b962aa5e7200c144561a1cbc9214e1596f6566cb3510a23351",
+ .aad = "",
+ .tag = "fa67d254189b546683c19688f478ff02",
+ .fail = true,
+ ],
+ [
+ .count = 8,
+ .key = "6661378d912cbce139e96e29e5175727",
+ .iv = "8f36d327d71fb6e44a095b2944f05c612f5968f23f31bdeddc638572a0c24eac2bce87797e903767e4f467750bc7447cc9def07b8ec4dccf36e585bf1043849a645ff7e556ca25a0061576719d080021164b20b9924b27afac6cd1f600bdb2acd08949182c22d4ece379a3a7ac5d56b9d56ab0a8fe7d99acf157c63f57019e87",
+ .ct = "2f731fc2bc4ff22f51f28cefb5401f9eb8f02551d5210e9560b5bbddd97c081f6e7f9822c3326148bc197655cfe5ff35826b50",
+ .aad = "",
+ .tag = "3c18ebb8bf9394beb57862c66ffa2596",
+ .pt = "224c2f46faeae337bd7b1c71b1deaebe119508199d4320bde3185032a689ad591a7fc2d652e030eb9af62583cabe2780b70f47",
+ ],
+ [
+ .count = 9,
+ .key = "17c4b2e5057625c8065563f814f1b05a",
+ .iv = "3b440b2811e4c23ec197f6c7548960984350a2e890421bf68c11e032af81654f9f4d6bcf2c215cfbea3c13a9cb41b0dddb24dcb0ad1240da0096fea824a4e3347242f0277bc3e966e48ac451d2505b71e08b8b48bf20e1a89e7861925404e60f535b6d56e5495ad1b85b52bac1ad796b701d6f9de575ae481130b1b6b1474be3",
+ .ct = "1deee67ce4bc4470d8b4d0e56feb92cdc7370e1a7427c3b6a78370ba07e817c9c3e7a2ed45ba806c901c5dceea91d0b0672ca0",
+ .aad = "",
+ .tag = "7f7170dd48fe18d630b8be8211bd96b7",
+ .pt = "594b1dc3b7c528bc39f84ae3f759e439883642620078ca2f34f2ea3aad83788365e7844e6436db9ddd946ed877a034a50a798d",
+ ],
+ [
+ .count = 10,
+ .key = "437b35fbd5c08614baba728179418d59",
+ .iv = "5a2ffb247862807b91c06fd9359be1f40b6730eecee0f89f55110246abcc4706c391c027013b6bf40247df9d25758dc840c9d0aa30910cad8ff093bad8efa7f1245d89bd92209d1a2185d62be74f2542cfc56714214200c3c74fea5ec898867afad825ebfaafb843f87ee803c166ad99a0b9d610a29771bf6c6ba36991b74031",
+ .ct = "10a895e986825c21bde6108611b0821574790f2e1b1996c03f87f018d49ca8aa52f7c6e2d08072e42367bb5041ead93a7555d2",
+ .aad = "",
+ .tag = "7062d080fe6e5a4911d778520caba6a2",
+ .pt = "4e78f022190b938ad3bb986a41f5f1cc802d4bf4bc825c00892d02417d1704b32d99cae4a1f9abc78e9504b76c90504a835ab9",
+ ],
+ [
+ .count = 11,
+ .key = "33914c812cd23a7d7a88a9981e5c9fd0",
+ .iv = "3a9207b40db40642a8bd10574019fd848ce07ecb6f9d14544a8e1ab290e0bbdbff859bd91b6e77873883bdc9ecc40050020644f0e01f7990b22bee85d63f49121cfa1132fc07202b2ec8d76dc9ab0863811afcc5b54290a9ccff02ede8749a101859f94750d59395a35c3de9dc42950c5fce64218030e9d6647e07889663a98b",
+ .ct = "de0b309a638165a9c40d5cfb10199fd989bab2d4083424c223b98a32deb1c12bc6d01bc8172379dbf3bdf92241db98d7b1f4b1",
+ .aad = "",
+ .tag = "febf03c442d8b5d5013a9d2d5a056ca9",
+ .fail = true,
+ ],
+ [
+ .count = 12,
+ .key = "7b8404cc718decd105d3f08822c83193",
+ .iv = "359977edb9fa1fef82451c3d6623d407847708a7b175a49a52fb4a4a2f506a5ff75f16243371fbfc586c7295d2587033a2a8d7df9c47ad01fb81b64617e9f91a019fee2bacf1c0cef616198b9b61ae8b25ae1ffc5a4a8020e5dd278d4a9fe4522a729598efcd450e874cea62fd13c4c7a21d511237f7a11541ecd1787ec43ae5",
+ .ct = "53c3a69064c175655b1e8f25066ca64ef1d5a3790ce43b28ff9afbca588a7168ebe11952c1f8cf602401bedcc842267b327950",
+ .aad = "",
+ .tag = "5d2146a4bd9326785ce1f62aa3b4d815",
+ .fail = true,
+ ],
+ [
+ .count = 13,
+ .key = "9dde4f2c26e0a8c96903cd6f099c4328",
+ .iv = "8e82d0071a2d473dc1a14c30fa9c3ca03a21b873a13d9e80a00584a6e62869cbe4a1ecc64bccd32d781054704db360de22329f8ecaf9b650349e9d92df1ae285f8b402db4cbf9555796bca0c98968aa6c1cec35e5b975250dd310db8c2bee523833f810395db0f7058e78f3db63b11a5be4c1d6133448a16127ec77687beb4f8",
+ .ct = "05cc431cc15c7c6d85e61166e47a1322f46dbd0a0bb5b985fecc72e82e5ef29fca77a3ba6ff9ecca6a46d95fcbd0faffd97341",
+ .aad = "",
+ .tag = "ab07910c64017e407eed0b0bf20e86c8",
+ .pt = "c4dc2df1b811c912b94052e450951af8229cef15b770cd8a853b594834ae04db2f705a618719918fc07ad5f60ecbb2011bd1a0",
+ ],
+ [
+ .count = 14,
+ .key = "29702f7eabb7ba65a5fa47aa98f62ddd",
+ .iv = "9054c4cc2e4febe56975f7cb8b10d353b1e6a57374ae9fbe6016293cde38288ecef1c273273ee96b9af4d7e6bbcffd47ab234501daca68d59af8e70041b7cd84dc796054ef60549f27821807b4bc7da4eecdae9b7537c2a6fb6889343c21bb78ad84acf8c13cd41914dc643f2d2bc4c5517ccc75675b66132c821e556f506312",
+ .ct = "89506fdd6fb52e6312f94e0944871074750ab021da131d1398eb8d837f25b7c2b931bb44e5df12c9519cab9a0798245b15dad5",
+ .aad = "",
+ .tag = "428eed870e8568eae8205a24c97fe1ff",
+ .pt = "985f85a6693f3a12d877c7a6adbbcb8c0ee667569086f9ba6c895d885980343cc42a7793843a94a879886bfb769a7d93723b65",
+ ],
+ ][:]
+ ],
+ [
+ .name="aesgcm-dec-iv1024-pt408-aad128-tag128-key128",
+ .keylen=128,
+ .ivlen=1024,
+ .ptlen=408,
+ .aadlen=128,
+ .taglen=128,
+ .cases=[
+ [
+ .count = 0,
+ .key = "927b11faee9391a137a79e6f16301b6b",
+ .iv = "265a8e0afe1316734ceeb84d318db837a14b6357f83383112f10eb5bec19b864236268aa016cbfefbd58a993b40306832065f2fb7a08bc39aaecc3d8f2739b0b1afb5bfaa56e731bd91b391e8051df5168c1375b66e51094bf168cce31f266e3e066eee67f5316b3ab988cb14caa842c16f3aadfcc76005dd7cd7267fa904f70",
+ .ct = "5a92ca7a66f0d6e6c1f186b4c88ae15700fe7791a8494a695369890ff21996235eda9f8e5d91f79c740aef925911ad2abd2da7",
+ .aad = "70fd34e8305aa4c22c02c58fb71ef7f5",
+ .tag = "ccff88e80cf8c2dc62dab34fb793c859",
+ .fail = true,
+ ],
+ [
+ .count = 1,
+ .key = "8071734b43b83c08bede6eb6448c76b8",
+ .iv = "d6c9ea90fbc5aa88a29f4d007a157fc6cee0fa98f9f799b51c1827ff2fdde6d4f9a3ae93d0c4e24d5cec8a23eadf7987eb2f96ac1f6ea08cec220d8a1074756a1a893917fb0a70ee6f6c1f3c5737e07129dd4f85636dcd6986707b919067ad17a88a818772fee20d4bd83b82371baa3ddb8ecf69628165e9b699132bbc468e44",
+ .ct = "dce60becd62e1ea27292f1eb57d84898dfce45dfa2fbbe8257594813094d179ce8844ee7a6d8b15ab061b4f9cfe0a4b1a86b1f",
+ .aad = "52b05be397e2fbb1d50a49b5d9d39010",
+ .tag = "67f540e85c3cb7c68282e602a54d361b",
+ .fail = true,
+ ],
+ [
+ .count = 2,
+ .key = "85bf53f2b64ff9c023cfae23e26a5ae9",
+ .iv = "505d7134c576c212d5d224829ff87fd795b1be96140ac51013f77fe18bc5c06d039e9bb93e88ded0ff61b5d8c83ec12a8b771e6ad89ca047c136567b60c588275bebecee58f160c2d3b4a6e45b157d771c39ad76fd91a7a875033e7ca41ec077c48ed377397707c42496f55d6485c0cf73c3c8104661f37f3443e745682d121f",
+ .ct = "e1da41115a8ddfa19b0cbd2c293da56707eb21b78881944a37971413afca2000abe6524dc0f75633a579a658eba1a30eaf30ee",
+ .aad = "b4af2a8916642a272cb2411f7f45e4fe",
+ .tag = "438fecb7472b0871b1df3088e59c9b21",
+ .fail = true,
+ ],
+ [
+ .count = 3,
+ .key = "84d5c51bb0703f93c6a573ebb0c8fd00",
+ .iv = "bcd57058a9a7f43285d60cdae7883c4ab4e0dc10b8a14493c046c50f975ee5d097e2efc4fc95fefcbd59151e0fb88d34f676cf9555f95067596d80b32e2df085549590f2c34bb84fdf561169f975c170ebe92502e08fb4ad4b51d8519641e32c3e1c93fc52597f0bff68b2082502d25436ad6b01801e1a08fb1b196f9e00b020",
+ .ct = "b5c3fad6fbc819fc8fb39f546093a9f2ee3e733b0ac38784e4248f1c1fc4dbaa4fc033e3bdd5289256910f8d42e24e2268f28a",
+ .aad = "5f7f4cc06d9ccb8f811900362b51ab68",
+ .tag = "42e3bf74d787f151fdb824fc4f8f257d",
+ .pt = "51a1827b6a6b9d97ad10f1f5102865e673c21721d5d8fd0934355943aed42a760b119430ede596e5b87585f838f0fc3231ff66",
+ ],
+ [
+ .count = 4,
+ .key = "2cb2ec939b1e958f3341f9778d35bba6",
+ .iv = "4fc4866542b4af4feb9fa56d4169c63e2f0a9b38425311449d2ddc9b435067ae0f5d24df1a7cfc8a388dd67d3536c6ccc640263d99d2097562a7e7bc09aa07992a30a68c62398d460f515bb08091628328da761916171c3a60d95fe89a3ccd9d07138a643004a2d876977614262033b6330dabb62d2be73f5a17bfd3201ed697",
+ .ct = "607990815ef8ff3aaffb59eb9dbedf6d653a923079e606397bbe946a0db92fab888db98c8bfc7ee1e72517e991874e8ba72833",
+ .aad = "ea0b0c51d5a8a42e425d905aae44c966",
+ .tag = "3ef873730548651f843150896e22b756",
+ .fail = true,
+ ],
+ [
+ .count = 5,
+ .key = "ddda0c444ef1a7ccd4b5473478ff2fc7",
+ .iv = "a56c65e41665beae482062ebb6db5be776b490ea8b8fce4ded632680119e624388bd4ad908ead3f0e639f45e9a8104d01efe260f9e3c05bddcef85d8d55922e8cc0672e05d337ba17162ad3e12b77296daa4cc7b7986fcd170fa4f0da11f2380e8e6ebd707fb9e64d25e69110ad8c3bac61c66c0b0931e1da407629e1236cc9e",
+ .ct = "022edd74cee23692a0882c2d2244a07216958a4b826cab142df5897bc38feaa6fb4ddc155e106cddcd47b63ed7802f7ad3a5d3",
+ .aad = "132f89b6ffd7ce49f231b370e6f9c135",
+ .tag = "515bd1e051f77d877a7a030b814d9006",
+ .fail = true,
+ ],
+ [
+ .count = 6,
+ .key = "98306dc6d7e48c0d5a7bd427e86e1de3",
+ .iv = "81d0d9c12e4e9e6b05981b708661129a0573a511b9672ed054d60daf0f2a8d4e9b4257f6fa31f19b083f31e12b7773602008875d0b59ff41a3bff63a517fe50c84d176fcdffe9cf99ea2ed1dbdf5552cd10c1764dc2df34d97ba715fe0dc29b2a85e90b54e44bbd115565df4e7526a023f0b80527654202ab9cc02085b9ef58c",
+ .ct = "d50ff00f849b1556b4d240144cbfe900c0bb49dce1ceb0373075c9e3b7bcdce04e5559a7e96ba7fd07f0e156d260fdf5c14938",
+ .aad = "48891a76f8f90fb296a5dceaa94f8023",
+ .tag = "e6f98af1fcc0c7a9e8a2df30d67e0e1f",
+ .pt = "e87d80185efca49db0e892b7371f139195143779c0da6827bc855d8b5db4f6c6f975eb472c65114047f2a7a262b82fbbb49134",
+ ],
+ [
+ .count = 7,
+ .key = "e228061ff21c75f96c47c29543e5e82b",
+ .iv = "5abdb036c0532abb2727dbfafeff47239f81e98349dd1eb69749a61f8fce53c02641e4ef1cb660c8bb430c2879ec7c7291a0cfa6854393350f27dd171d5ec67ea78912e3212cd847c571da46db9ec04307c5eebbe8e948595664d0bf139d860850d30c884558aa6a17da327a5050ab0e2a3e12e7413699be9bc0154b6384a00f",
+ .ct = "8960aafa1167eddbfec8b90805e9e5975e48bca3ca10d6410a63879f1ffa7606d8c7809596b5e9f141b7eb76cfad0179301da9",
+ .aad = "0949956fb3c95c004cdfdb5900e2f976",
+ .tag = "bbbe33e41cf25f5b02a0ed346cd1c104",
+ .pt = "19c858dc86ae9d94acc1417d79911c06f4d47a1b035938c892fa22ccf351b0ed22fe25634f7c29482fad1250d572e02ac957f5",
+ ],
+ [
+ .count = 8,
+ .key = "8fb417f75e834ec6fcbfe0de9b3c5d55",
+ .iv = "063afeac36b09c1b50e8ec6fab18168a08250b0b02f72c1579920b9eadf1a62011130f04ae31863aed41af766a1a27a8067bcd0b2a51a699751fbbb378fa2fb14a4b132cde3e336305ec0a7d1f74e4649b05c92f95f763aee9fda0600e5c51b6c781a83cb651a315e38e82cfd857f642c3fa407927b651e295c3fba93a629141",
+ .ct = "c9e3ebdec650b5c0acec2de7aa9e8f77f5fd547d7e1f59140e98b08bea7a8f9bbd038f7eafe970d6cf8ee2bb04b2bd1762fc6d",
+ .aad = "666f06b417a0b3e15f0ca779280812ce",
+ .tag = "48bbc7b6a37aac61b7e8d186e3f951e2",
+ .fail = true,
+ ],
+ [
+ .count = 9,
+ .key = "08da5301793ac7f55cf2be92582a5fd5",
+ .iv = "37d462eb5380559027065ccf953b2e1e04442ffff36085ebb22a4302cd888c0945238f1a9948eef57543f640a11c80f1d286825cfb8cc4077e335f7ec98409b99d4a09df43965b9449ab69c3bb40521aafbbaf4c44b186ed26b5bc591911c31def0d89a221c3863e0aaeb2ee57dd0bc0590e619eb7725c9cc9e8ac17ede8b63e",
+ .ct = "a6f4fc12cc156afbdd6f0062f15a1968c9e3db8c9e40df01d288c67113d4ecee728b635a74cf31c79a9b8d1bc0301451b97b8f",
+ .aad = "1e9cfcfbc1fa7538bde23505bf441b2b",
+ .tag = "e36b1999d336b6f94b7f78cfa478f9b0",
+ .pt = "8b443d3684da650d157fb882e8cb170c7ea37cfad2dc803e0a385fac904301dd23fcefb57aa7dc99e9ff3e70e4aa34dfa665d7",
+ ],
+ [
+ .count = 10,
+ .key = "fe0ca445a9a826f5be872b2ba2f627a9",
+ .iv = "794fe66aa9b9c549205154993adc7d54257390fe95e0ffd1ac57d3c269cb2fce221f1d24299b6c42f2c975580994a46776ce274cb4230b99a1004ceb40ab45dddd94b64469bfaa50c9b4ff087c382affa5327fa03fdae3173428794dd8e4512070e13e4f12dd2b20a7a81f0699d8c3cc663910f7613006a598cd99ad4522e3b5",
+ .ct = "71eadd8c57bbe92a24019647c2c99c794cd63968b44a08d1fbb257fe4c286d5d565e98e59f52d08caa272b8ce3c6aa29a02f7f",
+ .aad = "4884856f112af1f3bcc282c6189a11a5",
+ .tag = "10a3804ca5f359343be643773dc855a2",
+ .pt = "391952f59dc5b15aaab975fc7b6fcf092dc171afe1612c70a1e140a330a540a3850a708999063fc26835d51f2adebbb0ed5dd4",
+ ],
+ [
+ .count = 11,
+ .key = "879257aa8dc405a260f66e625e6ad9d3",
+ .iv = "7add0e5d89dc7aac2f23cef15120ca97d232994e2b5c9c180fc2620399b0dd2ed9efac95cecfff69326d2dfe070c5933d408621b45f67db106d6930213fcb071003d470506baff70125699da65582dcd84e336149691e832a032b6718e2ca575f07ecf062c972289b548fe43eb646246aca03f66a83244f29cec09b38eed630e",
+ .ct = "64d8984e762affaa4ebcb32640b90d9ad44ba0a394570287d795f3419bfd22a8e965975d85d5f600b0e4ab11eae87dd628ea19",
+ .aad = "79fddc129c32217603829f87c48cbda8",
+ .tag = "bb9a6b233d948cc11052aebe6d48a0eb",
+ .fail = true,
+ ],
+ [
+ .count = 12,
+ .key = "f1907c613eb95608db972a19c7476dd4",
+ .iv = "eafced08158aa1b1c4b861f2208cbde448a3ab5548ba0053f9a85421976c45327da4139cf3420d109b440a464188894a0925a104145710eab57782fcab4387ea53d7657bf1cd01765486f3e1bdefa205e016c9466a70d5e0b561971abcc2a1c5a55c746be1800004dddbf048cffca705118b2eee7e01b15d0fadb84cb9510d73",
+ .ct = "6e62f16cda84de71f6286aee534f135d5b0121527f25cc491f299897b08862b531d1a91adecc15705c8fb478b7410c5f7fb5ba",
+ .aad = "cc40bae7ff4a7ca9902a4579c9bbeefc",
+ .tag = "345685c817e97cb57322aa10cb61ffb5",
+ .fail = true,
+ ],
+ [
+ .count = 13,
+ .key = "f6b60d00673c8f07210cf5b6f0a5c609",
+ .iv = "dae4e6ffb9e5512ebcc7dca42e3ddfb7cb4c45a445e434b22b9622e31140e4deb079812b5df8229e206b983aa50020aec49d9239b63ae5dbb40292bc0bf3afbb3dd4a26c54a6b3c4875f7a1b1d52583cc0a97ea306671714c2622584d3d2efd611a09c094a67b0b338aab24c6d21400d74ba358b4853a9a81139c9eda7eb26c2",
+ .ct = "1d1de817bfed416c3a450450e404b34c3b963bda3a0128f850548a71fff44e76c78877c74b1b73c1afb7f3a1b485e824d7c820",
+ .aad = "a877e4750f67c123aca95f138b246fd4",
+ .tag = "78ceba447b148ea367c16a86d41f3185",
+ .pt = "43cbfc111af73ece379b7d03532f64f0083f9f7e5e2fbfda98215e4ea502fe0ddecfd7ae7c9fc0a200f13e323a5b821f1a562b",
+ ],
+ [
+ .count = 14,
+ .key = "d1af895662262bb72487c870579ae416",
+ .iv = "e3ba7b7fe8beb530ce1d55dd06b4f7f7112bbb1dc89751ce317b28db02d7f12b0209fd672b012135b867b794e46f6bdfd6cd8825f0d6cf51fffc76b8eb580a1d2175ed8b1017c4b40a37e37223a54d61385b58e4a92d35b272ebb1ea66cb4a40f8e253597d771743198b9d328a6fa0d5466923864ebed575dcbe4359a2af5ff6",
+ .ct = "09c195a92cb1e52265155b1ab25de4a1b96319c59eb73c647bb03cabd0834d13b5e5d404e0d808dbf4dcd5d833922be9a5b550",
+ .aad = "1c73dbb59c834ccc3458246827a9d6c2",
+ .tag = "c4f03d2ff953876cdd04dcb865f950bb",
+ .pt = "f0d15c37769ed1153e3f8373f004fd2116c290331c97f1e92ec75722111fbb2df097b14864048adfc981226d4ddbc51b74d6c6",
+ ],
+ ][:]
+ ],
+ [
+ .name="aesgcm-dec-iv1024-pt408-aad160-tag128-key128",
+ .keylen=128,
+ .ivlen=1024,
+ .ptlen=408,
+ .aadlen=160,
+ .taglen=128,
+ .cases=[
+ [
+ .count = 0,
+ .key = "6ee340aa16b716b8f1a9c4cfcc124b96",
+ .iv = "b3eb7fca59ab1646116df1d05f3406d0b623c08e06b3dc1c7a263d0f2fe1e772d6cc1ee8eea6212b44bcd25171e8c0609369c354ea96c0077da96c117b5ce384b63c71eb20a8b6a22b504d601b656445e4cdf1fab21a470f8f96c3592da38a98f2a25aceabc4294a83b4a133156005679c18b63426fcec5cbe1058461e463cfe",
+ .ct = "b64102f01a2f0f727fce74ad5cc470d57fd94c27a882eba91b2ee06bf7810eaacc142fad1e1de5d09dc1ae6a889e52da1f2e14",
+ .aad = "41153460d7e55d37d8eb954e810a3046ddbc89ce",
+ .tag = "db733a8e64c11fd4cf5b6b58d10cc506",
+ .pt = "d4fc1cda1a231913bb71c64b6cd6fdfb24f71c10a830617de35acff15b46f8e039140556219f049cdab40e92fc6ca72006e2fe",
+ ],
+ [
+ .count = 1,
+ .key = "3183720974591ba4b3a157a13adc9c63",
+ .iv = "73d1c5bbbf30683ed151b4653434bdcb440a9eb734def6b22a961efc60f2f29221f157f49ca6c26a89dd616f81cdb9d3390a895c3a4df3c1ecd56b119724d6f380be50f34ba1762356eeb79d092891cd5c0e461e876cc27737e148a8458e8b414fe90a6e42e542fdc538ccea5cafebabee00a7ce62f57d85941e9ccecb810eaf",
+ .ct = "1ad68f4a81baaf431b191f9fc0ec83a1eaf630bc49a01d69b82aa2d7d3ffc41da1852dc95d7bbcc8c65c6a87268a6d1b5bfef0",
+ .aad = "a3824252d368aac0f550e069417d635dd810ddfd",
+ .tag = "d79beb17dac56ecf2e9bf3ffcd709ecc",
+ .fail = true,
+ ],
+ [
+ .count = 2,
+ .key = "e9a534d0a9f25a5e3693c42e7bc6b800",
+ .iv = "23a6d65f3abda7ef59c376a680c388608a1620d59b434e2c56cc1cbad34d9f3d75ccc155559d804d8a646cdfe16153c0060a08cdbd8b0338871d1ce4e69f136534992870fede331cfb84678015d214417c3c9218c260892621a10a5708b70feab4c27f8626286d02cb0aacb71ee4aebd7e0950a7a0cbdd22e3e8c9c056b185ce",
+ .ct = "466204fd1db4a353814b4e91d30a7107ca21c975b74a417e2b400de0d5e851d741a18742c3a0d125888b04e72640f154bf43a8",
+ .aad = "4185722bacd38dba7efd58f9c4b7f88ad6b7ea9b",
+ .tag = "cb46ed625dd0c6a13c8d43ef4dc338a3",
+ .pt = "980e5ce79a78f48e1fea5715ef32e676dac0a1ac8772990f19afaa3b080369f5738407f1f90f04cfabbc92303ebae6931ffe09",
+ ],
+ [
+ .count = 3,
+ .key = "a1860e3b32c0e6addef7920b1e84642a",
+ .iv = "3686f2104753f95dd700c48ad7078e5bb8ed05c63623daafd5654da22c2aaa1a595fc612dd67f98605be3d1fdbe07a79eb8ff98a527ae88691173d529ec7ade8c1587cd68579ac9e0f9d37940ac75ad3f2302de15a543cadfb8c14216e9e382fecded7695f99598b125f2f1cfb608ce9181f765ad760dac49bfa2a9355d60208",
+ .ct = "e96bbd219925c8b4d8d45dbb5ad51d0e5a41a46cde589a6f8a3210c8a817ceb4b121cee2a0ff6a3470f3d9d226720fe4aa1546",
+ .aad = "e10a1d305248157d3f8ce24fa8192d1430bf2f54",
+ .tag = "87e25f8eccd901e2ae6e345aae2f20e3",
+ .pt = "da07fbce1249219fd8e5d42d5e842b24093a3261df21f93fafa0fb5ac6ba3a4c134e56bc9ee096a1e3f30c34c82ae38ecbe490",
+ ],
+ [
+ .count = 4,
+ .key = "7e7c69ba840906bdfff0ddf948df898d",
+ .iv = "4785e06a308baea20200a4df46ec37d4c3d8c5874efbef3b4f19cac3c9bf46bb24ca979d11acf74ed8535946254f718bffbbe906fcc54affc484f2704beb8df40c6d61f2bb1ba4fc7ca998c5afd11aadb7329527e61bd23ac291f673994be2b2065eba5cad8f9b4f510de2b5a0fac96916e37c6e5cda1e5032491a6420723f8c",
+ .ct = "7bf1d7b86a29520bd39a825e309e8a6501b0b20f4b10e07ac46b28d22b577b1713b3bc55c85cfe55d8699368f712de15d8e0f2",
+ .aad = "1910d9dce10016e928c8d0f888208354f1333aa2",
+ .tag = "2b857410fbb322d59d63f8b8036549e5",
+ .pt = "9cb2c93a65f115f51b26f7ed6a3c36ac73d57b92194e6ecb24bd0bafa511b204da048be54f933791dd1b19943b4b2e8cf4a4fb",
+ ],
+ [
+ .count = 5,
+ .key = "643ac5e722d998cfd58fbb91a22fd417",
+ .iv = "c6cd62a2d12c6f68bf7f849809f82251cc4b4e2d3a349e728e51cf66eee4ab1cd4535990e45d452f53c2344f274aa80ddbf467fee1fd00d006c41416f3fb3e2bdfd962666ad91e8b4595c18bcc4bd378640b761a3e322c2220f9cc92be61ab54f8c1a3a7286c8bac60a8a05609dfcbe22dd1bd46b6ac70f35f92fd8ca4eb5d20",
+ .ct = "3b16556e507df1c87f2c32ae56472eda484f283046724102c59ba44198f6935b8e65dcd036afe87036367acc44ab25e2c78a7c",
+ .aad = "a9f33d4f67092c5a65d60bff80b018032b8da43e",
+ .tag = "5f5391ae037f39768d954d75b72328aa",
+ .fail = true,
+ ],
+ [
+ .count = 6,
+ .key = "035a38b437e61f98ca66cf0c22c6a0c6",
+ .iv = "e52a825a60642c7f5c9fc9a70696d8b2919394037afb154477bc0caaf4ef9bd4444d5f8ae83732b1f6e01de93d307ab35c7bb3d6ccdc135ce3b95e10adccc3865cdf38bfee49e383728854b83dc20405d81a5ff37e797a84bf5a3c425b944e8f0a2be14f27531699b3b165624272ce71a84fb1135214297dabbb3bbff2b25f7d",
+ .ct = "205479156a081d76313f138889fc49107147830c4b1ca02da40030b829082d201f81822f58ecfacc25a9ad9313b5e09f48f6dd",
+ .aad = "1655b7166cfbf48b6fb681edb2d82bd51ddbbdde",
+ .tag = "1ed0a1452b51acb7157d4488b47596db",
+ .pt = "ac24e28b0199ddb50cf72f508cebef79b52f1021466b3ff877cde686ba43a72e2f39cbe0674b7a89fad7052fa8b252d4cfd8c5",
+ ],
+ [
+ .count = 7,
+ .key = "8e84c49d087fb320034bff8210b5b415",
+ .iv = "cc8ec98b64868f451f5cb765c26fadbe55be77d36708be5f75e00176080523da7e6f3bd1a0a9369d6484de5e1c1882bdc6ba758b5da4fc57f538673afbea765698dca8fe79e9e35f0924eaf0e0a99907757173d42431edd8483d8a7e3c76b51b249330a456029653eda901e4729578a7dd5f19b3eee51f7837c68f6387586a54",
+ .ct = "43616c849b1a015b3d69dd352fd60960d537fe94925b7457dcc14a42e6620ecd708b7b9ad9218b91bf0a29bb04a4743c1a4105",
+ .aad = "29913269dd7fc61ce1204db0e4fcecb7c2bb893b",
+ .tag = "293ea6e96b6dad90c40f3e41cdd62230",
+ .fail = true,
+ ],
+ [
+ .count = 8,
+ .key = "13c7c8d94d047eb6e59c46cb062b29fb",
+ .iv = "d5ce7fe59e7a9998d0ad3222f0376a19d82cefd615dba9d7c7160e26125399a2f2a8d170296afe79bae1a9abf0023db62561d5214bbf157547320467743518d8dc1ff44b709356fc2462bed4777f6eafe93b90740df28835fcf8944dc83c135d3588cc7e8682bf74a136ef2c8ab3f69c7dc795d24c0d89caa7a4add1d2cad1bf",
+ .ct = "1823c3f2cd14af67d56f36dec3506e0422d9e6065f9f066dcfcca80002aa403f59f6864ac67834a5a52d0df0a1ad647f8e3a6e",
+ .aad = "5ae038221c7a53c4e65f7f260334f600bb5d811e",
+ .tag = "c3b2bd29a59511a5acfa9f3556253aa2",
+ .pt = "9444276676898fe045df7510bbc10bf4b44bd7e1ce4c2f35cc5439787069a2449287a564f53780bf423d5c164e9e561a65240d",
+ ],
+ [
+ .count = 9,
+ .key = "59935ef7ac9655ead673e72dced440e5",
+ .iv = "280c83b28bbc6314ef0a8156631a4defb6ad259c50128f4d4e2602309bba77904d835cd9572f8ad3339a0ef7057e26b0ca51d72c43036550c2751cafadadbca540881c866d2f6519505808398d4f1a70a1d2b93365b5b33587235f57fc4c10875283b5ce4f4e61113e598b83c505688daefc167f205bd90217b94e0209844cbd",
+ .ct = "8f0867055571a55da5c26b48572421c02474037bc2d7864670c654d3bbe55c8a56466352c14af8d88872fee2ca171ab479b953",
+ .aad = "c9d806bc685d9f978a6e4e198b8c2ce975cb4b00",
+ .tag = "dd7af1c7cbf0706711a0ba0373e310e7",
+ .fail = true,
+ ],
+ [
+ .count = 10,
+ .key = "366c16a207d78c89a102b8f0fbda1d52",
+ .iv = "c3d7174c01225d32a029a018f6c12dc4bd50840b2800c55b2216436154d4f1e08f9c965376d4b2e3c7d85449184c2c7b4e6a36027879b213f1b9e9f880525c3ccf86567e218a9077cbf8aa5a4df49d5a4300e0b7f5449c34fb2fcefa7ed8cf2d37fa976047ac46863f5ff842dd8eff726c85f0265059be3c330c1f90a21add2f",
+ .ct = "92342688be85fc13e4fcd326477c56da447df14f09e298cb7edf34c7553cb8f58fa3ac89e2d40c9a6d21b32e178b1ee153f640",
+ .aad = "d9a12e7babf8ee3e1988504edcde0a87b9f8f451",
+ .tag = "044c222b7946444a0f26a6117deb74de",
+ .fail = true,
+ ],
+ [
+ .count = 11,
+ .key = "61c3ea7e31c2398d43c2f56a092a98ea",
+ .iv = "53d6e5c9d805fff7d1479c5bb275c4acaa79f208f1d0e106499e357cbbe51e27d0870a6fe294028f4ce0a2f6a28b787c06fce457084ecd8c4bc5df2962614ab70e829ccdbb00163966b6ae77a79eb3fb1493aba4bdb38c410a297d7ca88512c7bebf6433633c4fbffaacbe8ba4d562b71db40bba12438338752ce7273db22874",
+ .ct = "894e2007b241e1495da8d8d8d3438c1112e558af35019dadb70c940c1689cecb84b5d1fcac0dee17f5c754fe8a7af4df83a5df",
+ .aad = "9ad524845078bdc633863ec01898d6ff83b06985",
+ .tag = "22f01a216c475975c966d64ba3f59400",
+ .pt = "2dc64155e6535693862b20ee91b7c47aac349b8fdbb7a2bae5753f3e66aa1c601d87c0fedf06751b9e58b84c1f9909f4777ee1",
+ ],
+ [
+ .count = 12,
+ .key = "2a53176cf1666cfdd855308787111169",
+ .iv = "cd9f7743007f525d7445a928a368ec2205a844d147a378f1fe18712233d9c35b2e1e6d8ffe5f4753ab392701d543634effb752a8fa45a542cdeb3a5eed88e6d238f0f1c2438ad7fbb5aafd70dc4a692a4e71bb99e3f22e43778c04a5c1ead153882a83ecb1adfb44e1a87e2f893de4f85e441a19b4161b84cb7120c8f4bf7559",
+ .ct = "417fd1a32109df9c562f112b9b44c190de7b68466e8c1a82c67643eafa0bde06daf029154a782b11a4d83e0c5056f1f96257d9",
+ .aad = "41ebf35c9702d4878a14d42f011adf4611c37b56",
+ .tag = "3d2e2e1a525fa7472c251a41b81cb576",
+ .pt = "c04e4e5f8a1248bed11c55c0eaf40a9e882dd78cf495f2e339222b8ba683928040d09ce63afa2ca09b18194b3b5f8e060fe079",
+ ],
+ [
+ .count = 13,
+ .key = "905587435985e66ebaf071c660c3ec95",
+ .iv = "a52aeef824b1182b7d32e5d9a7b91e84bdaa9551c3a662164b65a0742e1fe707ac6a1478832dfa4eaa4a9ef9368ca6053d457ad047f3a28e5ea1c87fb81b3bbc435f9fe1f062ebed888a2d9a465d2dfcf4b574bd9b3d1ca2ecd86845e1077c8bf7a21cf0f71f407433409f091e5eecdf06751791a81770d3207e68a531690cf2",
+ .ct = "255069ef90e2c628e49afd44b45616c5593cd1770a3af4855180d7e37d0e56a57ece34030ff19987d8efa58ead71147ca39dfd",
+ .aad = "bda66a4fde79949f4af5c0d09a76a3afa73ea725",
+ .tag = "7e9ad9fb008c3b3e7ab0f3fc1b35dd12",
+ .fail = true,
+ ],
+ [
+ .count = 14,
+ .key = "ccb92ed9416001191090631b1c4c79e9",
+ .iv = "1855af0e0405bad1e6921bf53500b39eb71557789157b2a546c18cd107f9ddab1519e3ad6e3a9d992f22b511e445faf09b4d6d232402fd7b074c6ff0f82bcd33c2b37a7370575ddbb2688d319b05de353688191a68df0ad39e999d89b7c522865a7e5da7c5825b61e953278c5c9412359f14511aa1fbb4548ade1c06f6f79021",
+ .ct = "04aa8404ad3c27504108249d9f5cdd8e613a739da6ba757e98315ff2f59f37cbe8c003b8befbffcc8d5efda84900d2b8898494",
+ .aad = "dcfc2964c22de92729bdfc1800a2e3ae58032fad",
+ .tag = "67e3cc8f10f149ea83f4b113e7cf39fb",
+ .pt = "e827bb0c628ddaac7294c50a51c069277ccf527f8357b1a98b794ce4ba70ac679303c1fd4c45e93459750e2044f8817176f655",
+ ],
+ ][:]
+ ],
+ [
+ .name="aesgcm-dec-iv1024-pt408-aad384-tag128-key128",
+ .keylen=128,
+ .ivlen=1024,
+ .ptlen=408,
+ .aadlen=384,
+ .taglen=128,
+ .cases=[
+ [
+ .count = 0,
+ .key = "1101dbcdb2e7be6a850c1095295192b7",
+ .iv = "4869df4ef2921d616df92a9443cce1a75671239913fa43e266b1a9900732001e450055953719974010c7d28807f7391b156515fefb54516138862523509cdd705946614400fa4b6979cd5c07909288576d42f1a47d247349971f21f8cd94e1b9c757ecc25f3207ec6af8554e8da28da2437982fac1ba8458cac97baf2cadb3d0",
+ .ct = "a9ec4258119e7a549a330d816b87ea37cc386aee14edd6f68fe7c7b10552d71c26bf60a6430a97d88713e87659d135bd3f812c",
+ .aad = "d8df3fe710824a182a7810d78aa7dcecec7df57dffdd453badb019f4ecbc16d01b9718a1a576df72a3bc8bf3a7145064",
+ .tag = "070c01b426772db71771ee9baef29465",
+ .pt = "de52fabdb60be9873bfe3ee789989686c7dc409ed8ef396d60ff3109dd8a59195250bed5d91d69074ec474d647b591cda7f480",
+ ],
+ [
+ .count = 1,
+ .key = "210083c793b648e3e967dbfe873f29aa",
+ .iv = "8b27ae583bad2119bd9523456414f27960b7582b9917f9c433d07c49e149ea6c530d1a1b52ce1cbfca92b2b05015b7b7e598bd93d2c179b2adc984adb498a9e38dbdb1f8c459f70a1e73c827d65d2d6801e56c85e55c9e91ccb5d2ebe49b0e841fdedc5cb32164dab5b1751ef15c830bc99c25a4db01a0064e87e9986c49a04d",
+ .ct = "48a763b39b8b9049f1c2131b8fcdb940bf72aa0eeaaa6dc3ecc31cb1ddfa3abfbd7ca4df3fd2cd19b094dd83146fcbac4eb08d",
+ .aad = "bb31c9300ee491a88be2c5af23d35562fe65243a4feff261678ca4aa20f3ac46a2e26b45417105c37fffd3ba5caa77d3",
+ .tag = "824cc40f336b824faab30230bc190a25",
+ .fail = true,
+ ],
+ [
+ .count = 2,
+ .key = "4ad70b2a4cd6eae6b9f106a1bee84f09",
+ .iv = "4651eece8c5db2daed42129fd685c7f18b237b62689616013d93fd550b23fa8c2140c3134087342e6cd72a633cd6ec4ca62a41bb854a81c07cba3730d7a9a10e2ba3a6803d7f8f21c7c4b4ac1ddc6d941ede0ddc739a9db82e8bc4e82cbb132b11dff1095aef850ddfd0b9155114a3332f8f1907264f09c04311dc225a4beee3",
+ .ct = "2ac7cc76e8437cc82ec98041dde540a1322ce9666c7879b837606243703c838705bb0884c7092d98e2fbd8c7c02c2575d70693",
+ .aad = "a6f200727eabac2543376c1ff44388eeb0ae0c566e80557ee49a93e935ae5ffd5a424f51fba7d2275f79242ace4ea71f",
+ .tag = "b32f00db28aae0e27f74dbf23ea44bc4",
+ .fail = true,
+ ],
+ [
+ .count = 3,
+ .key = "955efefd89bb6743cbcf04e7fc38f30e",
+ .iv = "e55c6da4e2b0b04e48fbdadacd545a84820092dd73bb7d9ef38ea4396f84b7b3d3601b3878c92da1af35430397d8176d7e5f0c629ba466fda4b7b89d8529281855687dbaa901fef7b1810ab0d99f62368f272fbd0e8b02ceac237359ae3ba7c9ddb75a0f3c53b859a25bfe7df7f4218ef5e3a2eaa872dcd073cadb0dcbca72eb",
+ .ct = "8ddecfa9c4e91dc46e5ca27c16dbd310383b93b5779e14f5f2f9536810f7e2b02f3671a1a01471846e57ee99361ac3129682ff",
+ .aad = "0818c5c5107976ab176f7c7a09ff14b535c593e6d0457473f81065e531138e0833c2a9eefb094eeae2b3b295e363947f",
+ .tag = "a835a7f02c0079c22a0ae773cb4364fc",
+ .fail = true,
+ ],
+ [
+ .count = 4,
+ .key = "688eb2e33f9f01dbfae13e37745f8403",
+ .iv = "8141bd40ecf2c396be6d712850e94126f702495109eb40f4621e6b5bc410bff2fb9cdd50640fb3b0af7d13a3dff7d70132ee2bdf3deffabdb9751eb2dc75129be36961dec065a72b7462ad428d108566ed54e8b26eda8203b774b393be993106c6f278b9afa5da2018d982e08644bad29a6fe68c8a28fe0a5963183d2b1974d2",
+ .ct = "85aabfdd46492fe00a00733e500d9251189da16b4cb131766019cca5643724e93c05127f427316c58967fff42d3ff682ddb1bd",
+ .aad = "db014bdcdd64c2662179c4b1bf9f02bde33d1c81ea5a6f7a0c83ebcca55a85eaf19bf99cec97faaa51159e219db13823",
+ .tag = "566a28728ef9a7d0060b19fb66c90a27",
+ .pt = "a5831afbed431187c6296e0de93d71926da91edca59873a3b37d89665005922508b1418fb0201e687059bdbbc3989f801b7ceb",
+ ],
+ [
+ .count = 5,
+ .key = "7508621c4b3b9c85ec3862526e2cf9f2",
+ .iv = "2d243fd74e67fe296fc92b4c57a21585401b2834dbdb6837ae70ac91c93137d523e893162294cadf13c3b719ead344571b9d5f886248f9bbcfe48c28972a741adb77639134aac650fc26086240e14fe1ff23014973c22557b3dafa9ed02ba9c6b44dddedee5e52d3fd0c9455b61723de63de9e29542db538303f6e1771c4b153",
+ .ct = "38a75a7a0cae62491826cd5cc3b7b25ce6c940c6b4dc9744deb6a688a0e21ede7224f6d517a34bd45a3242d72c442177be2aa8",
+ .aad = "502559e2903ddc2308e3df946d77e04b2554af549ee933182912f9f0d54fea646f62795c08a954f18eb19ca519a592dd",
+ .tag = "8e64b7fa828eb40e7b5bfea9105feabf",
+ .pt = "68919d1598bef06c58dee681347ab5d584265bb48600101454c0dbeb6d754e639e5bfd58b968bfde1e897a1790814b270e8545",
+ ],
+ [
+ .count = 6,
+ .key = "405b66e3ee9db0a8bed6d8e7dc5952e7",
+ .iv = "1264dd70a33be5795fb8a39c0161b8e2fc80eacfe4dc0b3afa00b812392aa037d05f5e924bc4b4ffbd4990039bc20d70aebfb1cd609354cccba754c849b7e581757eba4921bcb6b5b85c115e0468ff7aafc209cf6feb3968a13d2facba35be2c63197316a1681a0c486c8ba1cdf4862cb715df63c914009ef0cde471e745404b",
+ .ct = "a865e8b27361abb51e19c731b68c78eab0c8106539055d9934c4262896f2787f115c9cbe50bec8c4049f8729af07341f894ca9",
+ .aad = "15363e3c4847560251fade9b26d4e172e0ea94ffab03ec5eb18b3e2451ddbb55989a6aa219364c9a38cf1548570119c9",
+ .tag = "177e167200af9cda79c6cec45788f7d8",
+ .pt = "6bb72526e7c73b4d511d04efc85a445c67a95a9305a4d07bed78d2980d7fdd76c9ffafa2643fad94554ecec8c515f8c62195cb",
+ ],
+ [
+ .count = 7,
+ .key = "1acce02b812a2c9b6eddadf1833bd009",
+ .iv = "82e18f105a9de87a63aa9283698750d837466371f3181eb37d3e5d7e9cee192425e23ad5e998abd951bf6757061aa9717d2332614a69fea3f60c7f26012c7aab794d0932f4eade63f84d8ecd9e847c3ba283953c35bb42dc36a9dfb037cd3e801856689e849e1ff74f7a1fb7bc6c94dc08686b0168ab06a9f1a55a2eea442e9e",
+ .ct = "256224ea09c9f7f3acb120e06ca0c654ced2e7626223758faf442ce1097dad6c60b405114d0676ec6a76c9b8127a7d46a7d8d4",
+ .aad = "1e6a5fe9e67dd8d9d61b39b60862817c9bb7715274d9a8905593f22da4f892647ed0d17879277303703e44a50d9b2457",
+ .tag = "ee220981235344b874bf0e969de73e4e",
+ .fail = true,
+ ],
+ [
+ .count = 8,
+ .key = "7adf1eac423b7c8ef6d1cc6328d101bb",
+ .iv = "4e6a066dbb353134d516692b1071342f22c742ec6389ec9b594c4aed64e1b9f5ae4df43caafa69c6a6da7a60534381cac439e7c445314e805e64ee8e007d6809d5d05822d2a867d60ff478acb4119cb3f1ab90b5e8bce996909b27cf5951e261bd30081f8c78abb8fe34c1d4074684ef4725f93d2a90045226f5ba4d4f96028b",
+ .ct = "2865459446a913a2fec723ba4218cc22257c094ef02ae1109e74a908419d63be49d5c2557653b050b1ebcecb4f07cd4ad18338",
+ .aad = "77eff8c4264f154bf870f7242bcd5b8bdd9a5c0df5d76a05a463c1f10cc1686aadf7d9e3285aa7ed528cd9d0af1a8b2d",
+ .tag = "e933ddcd4e9ba618aed98979eb7415fa",
+ .fail = true,
+ ],
+ [
+ .count = 9,
+ .key = "798fef67c24d8fb44edb0a597d4bb7df",
+ .iv = "6d9c392ef99b79a8ae62fbf23ab1ed0df069a328913e65ec49553cf752ffc830bb030e5a655bb073071389db711b4d5e852a53c6e7c9c48981362952e411f776a78594781ed0d657b59f4a1fd136abf2fd80c6145a8d77406bbf802bb211c1e1b6ae99d00152cb81366494fa2f2f06698a680e78bb29171c7f3a2dc1849f87c0",
+ .ct = "48151c83c2f9b95c189e8a9785c8ff0bc6c2405bc0ec7aeda49cfef8b3e6a1e777c370c5d74c783cc9aa9664038442c1b71038",
+ .aad = "b86c16003c189e0ed5819094f89065c3926de4bf991714c7cb5120e85a90b56c20e1ba236a4c430636376d68ef9682a9",
+ .tag = "3c4a9c87865a91e6e4b0533c86f30c74",
+ .pt = "cfa2c046940a982a8e198009f4aaeb2fed67763cc9f2f9a2755bb973573d380819d720dd18b6a5ef1d9795cb6c6cf79c996bbc",
+ ],
+ [
+ .count = 10,
+ .key = "0133c5c35e6081fea0872151d06443c7",
+ .iv = "ca0bcc6d782f04525a7662305b044875181deaec107240d826294105ea3eddd06b5cff5cfa3a1dda62dfe31637c64d259e1eba116739834ea76ae8564135982c1da81249bf954403872ec32c83e40731f0a9436ee601551a9c10fabe8246d39e9092c4fb433de6f35424e44d786aaba6dd7aa272b2d2fad9cce96a29375f2e49",
+ .ct = "c0e6b892c84ed32d9fa5fe9fa63b293d64608b0b2122cb3252edddaf8812203eeb23ae742d921d5abf1a9120ca5d569af5b295",
+ .aad = "237937b613034c7240323b36bc744cc9698fa0297b22ae8c1e4267fb647e92f22b55797d593aad513a2d4f9e74a5b71a",
+ .tag = "60b1a84f9eb689f835aa82888175939b",
+ .fail = true,
+ ],
+ [
+ .count = 11,
+ .key = "b89dbdb3b72b8c5253d06794f8d8588c",
+ .iv = "fa43a7333e68d855a41908c158f0a824991b5f5ca7b2670f302f8d073cde801c046057fabec7ad3bc2cd148376446e21b419b3abf00a85d0d1fc6c4f41a5de6f1e3f7602110cc7d091e8b7621f8beb546202e40e5f7795a2ae71f7ef106dc9efe7dd74ceaac6609729b49334fa1c59d27ee58570e07fc8d2aded7badf36a3916",
+ .ct = "d2a0767658801b2953b3b622275d707d3481cd8d226124421b1ced8868c264aa73b6a5628a9afcc2e90e92cc235bb26fd57d63",
+ .aad = "d9072480161484a6eedab898771b5fe02ebed2048bec5eaf4e346bb9d0175e859a7ede237478e7e40cf1c8beca42e7fb",
+ .tag = "a35f4f01c7047fc6a32186585f3e0652",
+ .fail = true,
+ ],
+ [
+ .count = 12,
+ .key = "cb04064f8f8912cc2b80ae775cbce02a",
+ .iv = "726bb54c838b1da75fd42bceba1504a06e51af1dee58f7c32641ea5dd373dedad0e92e1a4fba9aaa6c94ee8dd2b4d8c2b5a3a9db950ccec9dbc1b4538a051665c5e739a08b01c505360b9ebd25218fab310662524d6dbe46a7fdba4b401a4f53e0e3a93d1fe1a0772ad36defc8c8912fe228f4f5ff5fa9a6fe98bfe6571661bd",
+ .ct = "f48787cf20cc74b9a9a274bb44926493092bb9a0fc6052e0deaa63024c1fef23ca50c5ebb6443d7e66091ba913e111dcd5ba0d",
+ .aad = "61b9b298a0e3e9b7f396178acecba9a043cb2d435e344dd808632f98fd04ca41dbc0552fab34ec4dfdef510f7551188b",
+ .tag = "353769ac0dbcb2888d13ac85370fc23b",
+ .fail = true,
+ ],
+ [
+ .count = 13,
+ .key = "7e73900f96f04c0eab13efa80946f82a",
+ .iv = "ab28096add605852dd2d55d1a4338b114ac3de6b0f3e7b265f7e5c0c2513fd45337237eaa73fd37fee0a8511e44b4b0386f66c5acdf160c101e1c28852321b462c8d84afbdd9574c7bff0fa8cf20f2629b04aa627a07300209cd0ce550e86319b97c9e0fca244d2a519a24de1b209be93d80d6c55603dd496883ba0e73d48a21",
+ .ct = "a2a020865c7908f6e43bfe071f0dac27343d52f3e9bb42b73ba9bf8789029220fd5097177369f05d3e8299e8b62b78b7e0fa2a",
+ .aad = "d42e4cfb59e8185ecdc6219499678e88905e592c318d1682c11b952c9a814b27757e3f60d71cdb4672bc94418f2a3ffc",
+ .tag = "9c2ac05f8429067e0244e3fa86389c8f",
+ .pt = "8cf2109d7003a6c4caa76576909f312fa4e901479fdf84c4ef361ac186e63ef782e74107d5559e22916052f90922cf0901ca96",
+ ],
+ [
+ .count = 14,
+ .key = "5c2fd655cf29555041a51538b4b52ba7",
+ .iv = "63bdf1c4ade81f7d22dc830b02e9a051e7c2b21f363b6364d45e03f4faba31dca185af39d003bf72775ce574d2655a95bf86131f7169ae16db76649b0410469c020e6e2aca458b09dd345f7d82bf4e358538192b26a9f0465db1a6f5bd20b2865e05fa2c5e6eb3556e91236f9ca3d462fd7acdbc84956303c97003ca60050af6",
+ .ct = "ef2c9ec5a60340b1f475c289bd251fe026ecda9bf29842115660db77b3f6d85ba391e39d52a4dcd4970418e007002ac5eafbf6",
+ .aad = "64ccb520827483cdcfdd0d7968821edf94e8d6fa57eb163b75a39e97877d004884b47907010335a170c852ec784a8a16",
+ .tag = "40853b6016ff9cbbccecc23976f4955e",
+ .pt = "b87a144af7d067f415d691bbd2eb724aaf95cc7d1122b9ff5a5a0bbfe7ca24d90d721228c7aeb5a53827d3d95dfecc3e2f0ecf",
+ ],
+ ][:]
+ ],
+ [
+ .name="aesgcm-dec-iv1024-pt408-aad720-tag128-key128",
+ .keylen=128,
+ .ivlen=1024,
+ .ptlen=408,
+ .aadlen=720,
+ .taglen=128,
+ .cases=[
+ [
+ .count = 0,
+ .key = "e9b0139be8b50b85dab4fc69186c520d",
+ .iv = "047fa684f5e40b795d77aa204eba377ea6150165298252c953f48f010b7735691fcba74e7d9614f5d77741213300790303be2894d936b2a92cd3cc61b0e9d06cac3ef999e0aecad451fb7eb41a4cdcc757fb756fe8846598b699aed8aa067ba01c8d8dae91d4d8414f73ff8311a3e5255facba2f28a2fa2cf3a5340a2f1bd2b7",
+ .ct = "b31815639dc0f31436cd86434edb3fb38a831a5defc961279f3a423ab88908cced42c7e7231f79eafaadd8602aa6ba262dd645",
+ .aad = "7307226192d65dd58d17a000dfe6ed31a3c3463d444799e85569e6d0a8375f739e279c1f3e138a2eec64808a4beaa8e4cf6757a4091f34b6619fb4220c6d95770a21bb46ad9a32799453d36012b293d96ccb990fecff7bf5d326",
+ .tag = "4912ca9aa5b64c28918a4873eafc4925",
+ .fail = true,
+ ],
+ [
+ .count = 1,
+ .key = "bc4c6e73acaad3efa1ee296fd11bacf5",
+ .iv = "451d09540aee27418bf5c5e50c09c4fa4175ba73c51381ba70bc9ef4bae6571d6d5a73dfb348449192f7e470adbe11967164aa9d786e241852d90867ad38dac02e314046d57846ac3d1eba25d9f2c15a6640b942a8eedb135241c96e05851709feace5432494c6da5b79346ca3ebf0daf7b1a3d7555722add362447538d2a708",
+ .ct = "f16ca460f87fd066482f08b5e97e6aaba3b26bc0f105c5e1fe7fe2eb6709fb4f2b435a3a3c7e8f8e9546c1150f0c517ef47e90",
+ .aad = "943c196e89253832d90531aaafb7f14bf79332b8b1537d98e7bec893c75f21707994d0289265132228d88c9ef4be167e2ede50b6761c793ba10ddafc736c3c9ca82c3e3d02b3bcf04fdf63335d49f773d3892aa879eed14c2ec7",
+ .tag = "fb03752c5fab7379fcb7d92054700fa0",
+ .fail = true,
+ ],
+ [
+ .count = 2,
+ .key = "0691f5dca95589d3e41b9d97aeaf308a",
+ .iv = "dc042e9f3fd042103b3083ce71347dea6619596259df9d12dd91c0bfa0fbd79f7217f7ee3325e6cceb7f120671838f59420655d867eda15cf9b6d3a265c59ba207b75a1292aa708cc820df7805e45d99b0f722cb1549451dd41849eac8ffae0775bd4b65a6304634cfe988415bc9176fe1b032a4dd62d0c823658f23321b15fa",
+ .ct = "6e8298afa44b360f71321174b178715521ff97c605eb8334348ef367809bcf2df225d21cbff3ca0180a6d9c238df2685319021",
+ .aad = "250c6f1d66c7f950eba535a393f245032a858238df40c4b50bd5a671685927669b2c34b7ededbded9962dd3c3c2415269fd5d1805fb2abbebfc4b1394b5dcad571d22be86ba88a19f3eb33aa326e5701f10c7bc13e54a438ff8a",
+ .tag = "d3c54c361363f9caefbf90f656423559",
+ .fail = true,
+ ],
+ [
+ .count = 3,
+ .key = "fbfa99ad9aeeb3e5edf593a42acebabc",
+ .iv = "b0fb8a76c33dd4361b091ea6470b22d77b7bc7ff9adbe5399896725f91fc34ff43609601b419429e02547fa1cb091ece5d12ca768431476a18907333bba3e8054474c942c33db420ac74e1ad362303e88708d983215031d7cb6bde2cc7ef9a44d9f7431dad0f8c69825b7ad955f2b1738aa227faf4e49ec46084550ef5b71ef1",
+ .ct = "180ad08923602efcf18c1a15a6a9d0c8cf4c66932759754ea6ffeb9be2281a0db024973100f38e10416653d91501ad7db4a1bf",
+ .aad = "caa9b127d64326ec6001508aad7d06b9ffe0709a729ff474c05b42d9b9dcfe052c5b103304224b173d2433fb17d026a3e156f969b623d8224b23e444476d665fb0c27149ba09fdad84d0028376c6efcf0a5f6d3329b744ad68b6",
+ .tag = "6056a1782ab84dbcd19ca83d47e73233",
+ .pt = "a6c8bf3ad497af4242e92b3bf429820ea73da4dd3aff1dfcbe374b575ceb638d47b6d88860a4916011c50c95b48199cf49cda2",
+ ],
+ [
+ .count = 4,
+ .key = "e544743714ef0eb3635b4705fd6c5a8d",
+ .iv = "6a111d8a55cc45e04dce77d50f9d049c7ca58c5d9642c90c2fa7c8488c585bc8e42a4aee7017ad6b09cfc29f395ceb874de574aa851726442405d282dd3f43465e1769de9c4dfbc99f521309dbfe7ba583b8e51b69dafd67d3f32f00fde88224b8a70807e49e7612118a646a6afc2f8504d59c771a0333c0c0006f75fbd5172d",
+ .ct = "38ff992f6a03fa9998259742db34706a959ca59d10056424db3ab649028229626ed9dc7476a632ecfa6a4a2bfee5827f3f4d61",
+ .aad = "e0ed5dfb25f3379bce5709668aed0a6fc315ebedc63febdc45f3d1414cf164f7aa026ed339415a3495493716553a32b483a035892070a35c447b7410a26f94e16b4964a61f6d8c722b50c5c0426ef9a8e2104870aeb5da210c05",
+ .tag = "c025d3a0414bc505eff8b68a9db0450a",
+ .pt = "5780ca9bf9cda4ee42e01d615a1629d244b24442e1e3b99af9a0448e8432bb36cc159436589c6d00d6be30f3ec857dcb1e07b6",
+ ],
+ [
+ .count = 5,
+ .key = "8f7eb7b696cb76f37609a935835db588",
+ .iv = "1c87b5d056b0f550cd38a3349c4e11842a6d98a10242a79b6ecd6e42ba3424870d3357f535a0736462a23551c44f25281437c015d73e75b85a90bb921e6a4929bc00eb07d7b33e4d0c2cf4812e8aceea15e06b11498638c0940b5259714a089c00a3405ec748b286514f3800844f43fc2c8a16ae92c401fadef534b5b5fff202",
+ .ct = "4823aafb5832557257da5332d9da5f587b6023ad29be882f5e5c375b7779eafbbe037c333ae099aa12e724de671f903e61fb0d",
+ .aad = "d71fb9c0e4343e34c733b6bbb7bc0ed8dfa847b1d2db33376c0003533ab8d9033bcfb2e15d2a170b5f301f6dac244165426490ea217109e8ba36ec473eae8d6e71064e9eeccf015f6c1b832c169650493b6347961fbd84c8d062",
+ .tag = "b99370fc7b5891480496b4bca027368b",
+ .pt = "3620b936385b0b17fd6599f1cebd848e06b8c3b3f10f19bf41ca17e67cbe7e2dff16b6ef39e8929d94d8f2c0cb8a9994f6a94f",
+ ],
+ [
+ .count = 6,
+ .key = "4d9c6a13044b8a85a6ee0e283a25f92e",
+ .iv = "79d70bab283b199b77d87966671adef7f5e32bdf8a6c7182142bac02bd3a824f19d1b8d372def80149784881bc286829ff0e8c62a8fd051137b903566d1f05aa6d33aca998ec48fd4d3ea7d3b5de20857206853ff6679b41991ef3f4e86d7ba297a5e260e2ce84574a58cb92408a099f27290d14a2397344846dd6c3c47bea3f",
+ .ct = "29230a010b69c468cfdaa5b13bcd23319bc5c8653996f80b605f00e3396875cff00037f71bee8f8aaa10a2b90afa47d775cbfb",
+ .aad = "d170babeb8abc4aaa85535f6bd18c2390a450dcc0fb9f042176098cb26ae865e189c11ca5ae8a39dde44945f3ced78fef29e7ad4c7105cf38a8d8b2ba8418b8551941aad543e45f1c6be15afbd96db605bf2cd435e224bceb3db",
+ .tag = "c5d6957d3e1ebfc578617569c26fe6d5",
+ .fail = true,
+ ],
+ [
+ .count = 7,
+ .key = "6b0a58004a93d965d2e1c3e5d330b2c6",
+ .iv = "488635d264e888520bcc444d696310f46c5aed02f32015c0e3c83bd251dfe02a604aa818a99086dff7ef2bc01830c75e33528d6b3678a7da512009a101b7983e6b5dd11d35b76d77984700e0383f9a06adda9b99a90af99e32d34daecc419b4a081b14cced73aec26af9f6cc4a244271f2af0ee2c04d261923ffbc33055accac",
+ .ct = "f18ad9a37191e75deb07999b33ccf8e1ecbb902ea6f3f76155df7376dfc42cbaa8772c51b2108671d241e51e49d238281dc87a",
+ .aad = "95e7a2402b9ddde429f7d74e226974e4badf08ce4c60051d49428465865db3002fce4f1766291796eaf6e3e4996f1ac6c80c7e7b11d54d0f534c95d6db3f9cb0c37e12360e99cf768dfa39da487cde7a769b284af4e049806a31",
+ .tag = "77d9a2ace5f03102c297d71c4b7c3808",
+ .fail = true,
+ ],
+ [
+ .count = 8,
+ .key = "dcd25a38b4d6b718511fa71afa8d4bf5",
+ .iv = "78a2e493fda176678b4141bbea48782cf70dacf1aedb21a3b393dd59fa533a0a541fe0690668eac2e47b0107f59ac844bf400420854350579a389b0617b0f8f5bcb191a79e2d6c05aea055f0364037e2b4ef7b7c1ce9fac60e9f8d6d3b3d41a47217e7ca81a381f16ce8b4053b68d8cd8fd2244cf086ca2b0020256c07ff9577",
+ .ct = "93a4b52319759f232f0b6d355e2027d843cfc56d25b73e900c462fce4446420721695431909ef37a4c1fc5964669a394ec20a4",
+ .aad = "8b9b734f391b5c788523b8ab3595f786a68b7de2e584297a66e33ce3c52aa55d9cc5f0b2f0e451596012bb3e69fd47e8b2dcae74b3edf7419865e5253202c6c57c72744983cf935c44b3e581c540e6d3a4fe59b45036b1db8f54",
+ .tag = "d02ba96e8e0008392ca9a9203f1ca186",
+ .pt = "bead5efdf71bff03a4ca53477f161cf756021cee9ea3b112c7824ba33bc94517aecac3b75d8e54d7c08044c65b804a32ccec3a",
+ ],
+ [
+ .count = 9,
+ .key = "f16e84d6e5dcce30f4a0168836a5baa8",
+ .iv = "b6e430259aff664fac00eb7639922e8fd772a2e0ac93a2ef53c94a845b64fdf0eba62e85dc41dc7d63702bbd96ed0cafcbc800130200031d3e1e8c053be14c145141640c7cbc2c296412bf0ae5eeabdd996d475d66a24fdf5260b3f2303542954581228c801a968b7bc87caaf919253ebc6d7eb6d748931727002069b4f1219b",
+ .ct = "79d5cdf0e1945f64bbad8b5e98f759cecf64a66738963fbe9c2f8b917669a775d17dadfef81261aa57163af3961f773bc38681",
+ .aad = "4f235f37193b2bdf6b251e3fe3ccc1ccdbf1063a9442815801e4c6bdb1bb8bda8b4c1a1c15856bf258470d6fb82373ba5954ead4e675df7c3cb5b8161ffa161c2e9c0b06db38220b575a3b63b191a826bc1def8950ed0a1ad323",
+ .tag = "608096d0ba1fdb3d5711ea4c289813dc",
+ .pt = "277788e5c17573526f71db9eafa60cbd3a8c61f7f042374e0bd358346f7fb5fe3641812d94093f79f93ddc33aa7d6d6f86637e",
+ ],
+ [
+ .count = 10,
+ .key = "2a13e67fd5948fd06d2e2788424f76c8",
+ .iv = "03fb8fb0eb8c45e427d3b4c422116e4f948a4e7d99215c71949afc95a057f3c805b97fe04913b83958c37e034b951c6374e3e91cfc413400bee2b28922511c93ada94a2f731645709c88f707925694e3ac1581ae76566591f65d859d01258465c87671b72ee8861291734547d72cf8fc2de75fe440fb4300ff5ecd75d736abab",
+ .ct = "b2494809edd273d883e3d15b153a5e1baf30d75f82253e4c0f2a41904a8b4e021278c407cd552d871a86caf2251b9e59ba61aa",
+ .aad = "64cac5178574631d2e9c1f47efe2c55f4871571b28e977e93ce74fef285c741e75d1bfbd0f50b7968f8d163ece725274f4bbc8f78d35e7fd51cccee6faa36be115509466c15886a01388bbf794e1e6f06a6d87f5643592871649",
+ .tag = "8a9a5952b2523f8e8097ab32e8af966e",
+ .pt = "02f14d1f6c3cd628b0451e79a6256a8bb33d2daade659888b88b7183687defb174c2964c0a675134c4657f1e4f3321d373a147",
+ ],
+ [
+ .count = 11,
+ .key = "eedce0c542cbd9a81e8c2df048d13934",
+ .iv = "fddca97991b47858f9fc46659a01c2cf790c0b04423fec8586e62f8c3be31c68e83c450e2cc49f8f5d421f34f0cad38d8865fc624316ebbcc35a58a3339a57638e1d9e045eab720b4e081eb0701c099578fc0f7c5b5f1d2f950eb89c2a8097703ca5775ad908e44a4993104aabcad1a77a04fd78c484c54e677d85470c3b19f8",
+ .ct = "21cd322ed70ca49b39a2e3961be400ec49d2e09207eb535214a966646a1bd4c54007edf6df89638cb95c90061960a05049e8d6",
+ .aad = "e28a89382c51b34cb56456ab7f3b563552155a8c38d9013130cb497460d63b90b4950b22ef0df4724f8fe883fc3090cb0f57232a829dd4b13857ceaca64c1f130c1429f42dad1d082fc0333acc970c84d3a14fd590dc69e64ea7",
+ .tag = "920fee3b7b9ddf8d2d65f21034bd9aad",
+ .pt = "e378e5242f90d99c99c4dc364fe5b0b65309b5c9cdb515050ec3f8a422abab472c3aa81bface110c80a24d24892b7f820ed8b5",
+ ],
+ [
+ .count = 12,
+ .key = "d8f9af3290ade75b2376c7c0c919760b",
+ .iv = "2d785733e349974f4aeebae06f24687f19077ecc83326c4ae8d249f24a647adfafd0db2d491aa2d8f893d62bb7c30c0957f38b6e399e0a4929cf4e0d4efe626b814ea5a4b28166f6fc2116af554458636a55d5769767b1fcb0708236faffb0f6219466780c2c849ada1fed2fbdef1eaf6f4ce675d26f467cf3c1257d614535a5",
+ .ct = "19e44cad683087c8479dd31122dfee6607bac287d6aedbd94335ed188c05b90612c7104ea89e0440b69a26df0ba918e86da23d",
+ .aad = "dba3cdb7d8fa60436bc8bf8f6f529e5f01497f03503b6c545b12272176557dfdeb48c5450e0b9ceb6169d1f87c30b0619b503a70ad24846e128a9ad3fae72be8d6768fdffc186a7c550c1b53f8c21061e29de8d6263efb22734b",
+ .tag = "c6055fce2446595e5d8eda4ceb1be432",
+ .fail = true,
+ ],
+ [
+ .count = 13,
+ .key = "f4268f374821ab4d5fa3660776e64042",
+ .iv = "8916b6d97a331bbbd173f07f16dacc6cce9695fe59b6f042098abc182e12e2d276cb9f452b1ab640b0dee8a218e70a8a2339336afb4651c8fc7030fa22a65120d02ee6a81135ffcaa30ce36e161ab903495383b23cde00cc858ae4a3c2cf2025a859181072ca648bb6b337b7337b747fa22a8eca856bd1048dd92da0e4dd7e87",
+ .ct = "40115137bd69da3998b50d968e174c203a7b5887f1ccf50670d3f3fcc304d9d98d53a4ae5a133e439be91f9889fd75033206e9",
+ .aad = "eb38f5c05376c395ef56393ac814a412050ea690d791d0ddf6f1d50eb3e064664e6c73caf48652b34c99b87cc422e44a6d333faf52bb9e3d7942388e2ae67fc73bbde0ecab0edd5258e38fdb93c2c46b4e67861fc6cb5c4fa8a5",
+ .tag = "a012804a165820355bc48d7aa84d9b14",
+ .pt = "13d74f180762a95fb7dc35ad46c1fb84f9f0d551d4c14db2c09f978bc9830c84f80e77888a46daa5c714d47e82477220506c6b",
+ ],
+ [
+ .count = 14,
+ .key = "02abc9c2bcebe4a89d16a7185a7a4f2e",
+ .iv = "49f2d74d9f85cc27f18b11e1f63f5e6313370795443ee0a681835481f2ae053936ff1996eb0a867947cada7a29e2e0774027768e3c1d2534195ca8d7280df3ed253defac6a6eadc7cc6099e81247e7b176b8345cc46a09931757b31d78fc0fe58b112b30def7cba078e1e77b74533dc938de126cb7753ca90f25d8e69147318b",
+ .ct = "af1c41128d6762444e91b456f3c825d7f298744177ea9bde63709289d99bd949df5df50ae896f4fbeb47efa683389686509dd5",
+ .aad = "42ecdf9eae9836a4c181367ac856d8459846ea09888310b4750215e3b0647ae43d69f15d2fdf4db27e14ab362ad42ed4749d4400e827fc53b4384235c4469690fbfeda21ecd6f60bd8be7664a46231eb99de8d08ccdecd461867",
+ .tag = "c7d26bc1cbf27fbf323b25e63a68ca1a",
+ .pt = "05856214b7f966b34f8eca6050fc7467834c209e51be01d1e5e5b714cffa1a6653befb9defdfc13238cffdde73e9f8d3295bc0",
],
][:]
],
--- a/lib/fileutil/bld.sub
+++ b/lib/fileutil/bld.sub
@@ -2,6 +2,7 @@
walk.myr
homedir.myr
tmpdir.myr
+ del.myr
loopcheck+posixy.myr
loopcheck+plan9.myr
--- /dev/null
+++ b/lib/fileutil/del.myr
@@ -1,0 +1,43 @@
+use std
+
+use "loopcheck"
+
+pkg fileutil =
+ const rmrf : (dir : byte[:] -> bool)
+;;
+
+const rmrf = {dir
+ var loopck, ok
+
+ loopck = mkloopcheck(dir)
+ ok = rmrf_rec(dir, loopck)
+ freeloopcheck(loopck)
+ -> ok
+}
+
+const rmrf_rec = {path, loopck
+ var ok, p
+
+ ok = true
+ if std.fisdir(path)
+ match std.diropen(path)
+ | `std.Err e:
+ ok = false
+ | `std.Ok d:
+ for e : std.byentry(d)
+ if std.sleq(e, ".") || std.sleq(e, "..")
+ continue
+ ;;
+ p = std.pathcat(path, e)
+ if !looped(loopck, p)
+ ok = ok && rmrf(p)
+ ;;
+ std.slfree(p)
+ ;;
+ ok = ok && std.remove(path)
+ ;;
+ else
+ ok = ok && std.remove(path)
+ ;;
+ -> ok
+}
--- /dev/null
+++ b/lib/flate/bld.sub
@@ -1,0 +1,13 @@
+lib flate =
+ flate.myr
+ types.myr
+
+ lib ../bio:bio
+ lib ../std:std
+;;
+
+testdeps =
+ ../testr:testr
+ ../bio:bio
+ ../std:std
+;;
--- /dev/null
+++ b/lib/flate/flate.myr
@@ -1,0 +1,396 @@
+use std
+use bio
+use "types"
+
+/* DEFLATE https://www.ietf.org/rfc/rfc1951.txt
+
+ Terminology:
+ - A 'Huffman code' is one mechanism to map codes to symbols.
+ - A 'code' is the sequence of bits used to encode a symbol
+ in a Huffman code. Codes are what appears in the DEFLATE
+ stream.
+ - A 'symbol' is what a code decodes to.
+ - A 'length' is the length of an LZ77 reference (the number
+ of bytes to repeat).
+ - A 'distance' is the distance at which the bits referred to
+ by an LZ77 reference are from the current point.
+*/
+
+pkg flate =
+ /* state maintained during decompression */
+ type flatedec = struct
+ rdf : bio.file#
+ wrf : bio.file#
+
+ /* one-byte buffer */
+ bval : int /* in [0, 255] current input byte */
+ bpos : int /* in [0, 8] */
+
+ /* ring buffer window for the bytes output */
+ wpos : std.size
+ wlen : std.size
+ wbuf : byte[WinSz]
+
+ /* Huffman codes */
+ lenhc : hufc /* for lengths */
+ dsthc : hufc /* for distances */
+ ;;
+
+ /* one Huffman code */
+ type hufc = struct
+ /* # of codes of length [1, MaxBits] */
+ count : int[MaxBits + 1]
+ /* symbols sorted lexicographically by
+ <code length, symbol value>; c.f., mkhufc()
+ and readcode() for usage */
+ symbol : int[MaxSyms]
+ ;;
+
+ /* decode a DEFLATE stream */
+ const decode : (outf : bio.file#, inf : bio.file# -> std.result(void, err))
+
+ pkglocal const MaxSyms : std.size
+ pkglocal const MaxBits : std.size
+ pkglocal const WinSz : std.size
+ pkglocal const bits : (st : flatedec#, n : int -> std.result(int, err))
+ pkglocal const nocomp : (st : flatedec# -> std.result(void, err))
+ pkglocal const mkhufc : (lengths : int[:], hc : hufc# -> void)
+ pkglocal const readcode : (st : flatedec#, hc : hufc# -> std.result(int, err))
+ pkglocal const outb : (st : flatedec#, b : byte -> std.result(void, err))
+;;
+
+const MaxLenSyms : std.size = 288 /* max # of length symbols */
+const MaxDstSyms : std.size = 32 /* max # of distance symbols */
+const MaxSyms = MaxLenSyms /* max # of symbols in a Huffman code */
+const MaxBits = 15 /* max length of a code (in bits) */
+
+const WinSz = 32 * std.KiB /* max distance for a reference */
+
+var fixedlenhc : hufc
+var fixeddsthc : hufc
+
+const __init__ = {
+ /* the fixed Huffman codes; c.f., RFC Section 3.2.6 */
+ var length : int[MaxSyms]
+
+ std.slfill(length[0:144], 8)
+ std.slfill(length[144:256], 9)
+ std.slfill(length[256:280], 7)
+ std.slfill(length[280:288], 8)
+ mkhufc(length[:], &fixedlenhc)
+
+ std.slfill(length[0:32], 5)
+ mkhufc(length[0:32], &fixeddsthc)
+}
+
+const outb = {st, b
+ /* outputs a single byte, to the output file; additionally
+ record the byte emitted in the output window */
+ var pos
+
+ match bio.putb(st.wrf, b)
+ | `std.Ok 0: std.die("no bytes written by bio.putb()")
+ | `std.Ok _:
+ | `std.Err e: -> `std.Err (`Io e)
+ ;;
+ pos = st.wpos
+ if pos == WinSz
+ std.assert(st.wlen >= WinSz, "window should be full")
+ pos = 0
+ ;;
+ st.wbuf[pos] = b
+ st.wpos = pos + 1
+ st.wlen++ /* don't care about it being > WinSz */
+ -> `std.Ok void
+}
+
+const bits = {st, n
+ var pos, len, bits, bval
+
+ std.assert(n >= 0 && n <= 31, "invalid argument")
+ pos = st.bpos
+ bits = st.bval >> pos
+ for len = 8 - pos; len < n; len += 8
+ match bio.getb(st.rdf)
+ | `std.Ok b:
+ bval = (b : int)
+ st.bval = bval
+ bits += bval << len
+ | `std.Err e: -> `std.Err (`Io e)
+ ;;
+ ;;
+ st.bpos = 8 - (len - n)
+ -> `std.Ok (bits & ((1 << n) - 1))
+}
+
+const nocomp = {st
+ /* process a non-compressed block; c.f., RFC Section 3.2.4 */
+ var len
+
+ st.bpos = 8 /* skip to a byte boundary */
+ match bits(st, 16)
+ | `std.Ok n: len = (n : std.size)
+ | `std.Err e: -> `std.Err e
+ ;;
+ match bits(st, 16)
+ | `std.Ok nlen:
+ if len != (nlen : std.size) ^ 0xffff
+ -> `std.Err (`Format \
+ "non-compressed block length could " \
+ "not be verified")
+ ;;
+ | `std.Err e: -> `std.Err e
+ ;;
+ for var n = 0; n < len; n++
+ match bio.getb(st.rdf)
+ | `std.Ok b:
+ match outb(st, b)
+ | `std.Ok _:
+ | err: -> err
+ ;;
+ | `std.Err e: -> `std.Err (`Io e)
+ ;;
+ ;;
+ -> `std.Ok void
+
+}
+
+const mkhufc = {length, hc
+ /* note: it is possible to have 0s in the length array; this means
+ that the symbol at this index will never be part of the input
+ stream */
+ var index : int[MaxBits + 1]
+
+ std.assert(length.len <= hc.symbol.len, "invalid argument")
+ std.slfill(hc.count[:], 0)
+ for var symb = 0; symb < length.len; symb++
+ hc.count[length[symb]]++
+ ;;
+ std.slfill(index[:], 0)
+ hc.count[0] = 0
+ for var l = 1; l <= MaxBits; l++
+ index[l] = index[l - 1] + hc.count[l - 1]
+ ;;
+ for var symb = 0; symb < length.len; symb++
+ if length[symb] != 0
+ hc.symbol[index[length[symb]]++] = symb
+ ;;
+ ;;
+ /* TODO: validate the Huffman code */
+}
+
+const readcode = {st, hc
+ /* if you want to know more about the algorithm here, you
+ must look for "canonical Huffman codes"; see, for example,
+ Managing Gigabytes: Compressing and Indexing Documents
+ and Images
+ by I. H. Witten, A. Moffat, and T. C. Bell. */
+ var code, first, index, count
+
+ code = 0 /* code seen so far */
+ first = 0 /* first code of length len */
+ index = 0 /* index of the first code of length len in hc.symbol[:] */
+ for var len = 1; len <= MaxBits; len++
+ match bits(st, 1)
+ | `std.Ok n: code += n
+ | err: -> err
+ ;;
+ count = hc.count[len]
+ if code < first + count
+ /* the code is exactly len bits long;
+ return the symbol from the table */
+ -> `std.Ok (hc.symbol[index + (code - first)])
+ ;;
+ index += count
+ first = (first + count) << 1 /* c.f. RFC Section 3.2.2 */
+ code <<= 1 /* make room for the next bit */
+ ;;
+ -> `std.Err (`Format "invalid code")
+}
+
+const decomp = {st
+ /* process data of a compressed block; c.f., RFC Section 3.2.5 */
+ const basel = [
+ 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 15, 17, 19, 23, 27, 31,
+ 35, 43, 51, 59, 67, 83, 99, 115, 131, 163, 195, 227, 258
+ ]
+ const extral = [
+ 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3,
+ 3, 4, 4, 4, 4, 5, 5, 5, 5, 0
+ ]
+ const based = [
+ 1, 2, 3, 4, 5, 7, 9, 13, 17, 25, 33, 49, 65, 97, 129, 193,
+ 257, 385, 513, 769, 1025, 1537, 2049, 3073, 4097, 6145,
+ 8193, 12289, 16385, 24577
+ ]
+ const extrad = [
+ 0, 0, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8,
+ 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13
+ ]
+ var symb, len, dst, index
+
+ symb = 0
+ while symb != 256
+ match readcode(st, &st.lenhc)
+ | `std.Ok s: symb = s
+ | `std.Err e: -> `std.Err e
+ ;;
+ if symb < 256
+ match outb(st, (symb : byte))
+ | `std.Ok _:
+ | err: -> err
+ ;;
+ elif symb > 256
+ symb -= 257
+ match bits(st, extral[symb])
+ | `std.Ok x: len = basel[symb] + x
+ | `std.Err e: -> `std.Err e
+ ;;
+ match readcode(st, &st.dsthc)
+ | `std.Ok s: symb = s
+ | `std.Err e: -> `std.Err e
+ ;;
+ match bits(st, extrad[symb])
+ | `std.Ok x: dst = (based[symb] + x : std.size)
+ | `std.Err e: -> `std.Err e
+ ;;
+ if dst > st.wlen
+ -> `std.Err (`Format \
+ "reference to a byte before file start")
+ ;;
+ index = (WinSz + st.wpos - dst) % WinSz
+ for ; len > 0; len--
+ match outb(st, st.wbuf[index])
+ | `std.Ok _:
+ | err: -> err
+ ;;
+ index = (index + 1) % WinSz
+ ;;
+ ;;
+ ;;
+ -> `std.Ok void
+}
+
+const dynamic = {st
+ /* process a block compressed with dynamic Huffman codes;
+ c.f., RFC Section 3.2.7 */
+ const coden = [
+ 16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2,
+ 14, 1, 15
+ ]
+ const extra = [2, 3, 7]
+ var length : int[MaxLenSyms + MaxDstSyms]
+ var nlen, ndst, ncode, symb, nbits, hufc
+
+ match bits(st, 5)
+ | `std.Ok n: nlen = n + 257
+ | `std.Err e: -> `std.Err e
+ ;;
+ if nlen > 286
+ -> `std.Err (`Format "invalid number of length codes")
+ ;;
+ match bits(st, 5)
+ | `std.Ok n: ndst = n + 1
+ | `std.Err e: -> `std.Err e
+ ;;
+ if ndst > 30
+ -> `std.Err (`Format "invalid number of distance codes")
+ ;;
+ match bits(st, 4)
+ | `std.Ok n: ncode = n + 4
+ | `std.Err e: -> `std.Err e
+ ;;
+ std.slfill(length[:19], 0)
+ for var c = 0; c < ncode; c++
+ match bits(st, 3)
+ | `std.Ok n: length[coden[c]] = n
+ | `std.Err e: -> `std.Err e
+ ;;
+ ;;
+ mkhufc(length[:19], &hufc)
+ for var c = 0; c < nlen + ndst;
+ /* according to the RFC: "the code length repeat codes
+ can cross from HLIT + 257 to the HDIST + 1 code
+ lengths"; this is why we have a single loop here */
+ match readcode(st, &hufc)
+ | `std.Ok n: symb = n
+ | `std.Err e: -> `std.Err e
+ ;;
+ if symb > 18
+ -> `std.Err (`Format "invalid code code")
+ ;;
+ if symb < 16
+ length[c++] = symb
+ else
+ /* repeat some code length */
+ match bits(st, extra[symb - 16])
+ | `std.Ok n: nbits = n
+ | `std.Err e: -> `std.Err e
+ ;;
+ if symb == 16
+ /* copy the previous code length 3-6 times */
+ nbits += 3
+ if c == 0 || c + nbits > nlen + ndst
+ -> `std.Err (`Format \
+ "invalid code repetition")
+ ;;
+ std.slfill(length[c:c+nbits], length[c-1])
+ else
+ /* repeat a 0 length */
+ if symb == 17
+ nbits += 3
+ else
+ nbits += 11
+ ;;
+ if c + nbits > nlen + ndst
+ -> `std.Err (`Format \
+ "invalid zero repetition")
+ ;;
+ std.slfill(length[c:c+nbits], 0)
+ ;;
+ c += nbits
+ ;;
+ ;;
+ if length[256] == 0
+ -> `std.Err (`Format "no code length of end-of-block symbol")
+ ;;
+ mkhufc(length[:nlen], &st.lenhc)
+ mkhufc(length[nlen:nlen + ndst], &st.dsthc)
+ -> decomp(st)
+}
+
+const decode = {outf, inf
+ var st, err, last
+
+ st = [
+ .rdf = inf,
+ .wrf = outf,
+ .bpos = 8,
+ ]
+ last = 0
+ while last != 1
+ match bits(&st, 1)
+ | `std.Ok l: last = l
+ | `std.Err e: -> `std.Err e
+ ;;
+ match bits(&st, 2)
+ | `std.Ok 0:
+ err = nocomp(&st)
+ | `std.Ok 1:
+ st.lenhc = fixedlenhc
+ st.dsthc = fixeddsthc
+ err = decomp(&st)
+ | `std.Ok 2:
+ err = dynamic(&st)
+ | `std.Ok _:
+ -> `std.Err (`Format "invalid block type")
+ | `std.Err e:
+ -> `std.Err e
+ ;;
+ match err
+ | `std.Ok _:
+ | `std.Err e: -> `std.Err e
+ ;;
+ ;;
+ -> `std.Ok void
+}
--- /dev/null
+++ b/lib/flate/test/flate.myr
@@ -1,0 +1,295 @@
+use bio
+use flate
+use std
+use testr
+
+impl std.equatable std.result(int, flate.err) =
+ eq = {a, b
+ match (a, b)
+ | (`std.Ok na, `std.Ok nb): -> na == nb
+ | (`std.Err (`flate.Io ea), `std.Err (`flate.Io eb)): -> ea == eb
+ | (`std.Err (`flate.Format ea), `std.Err (`flate.Format eb)):
+ -> std.sleq(ea, eb)
+ | _: -> false
+ ;;
+ }
+;;
+
+const init = {in -> flate.flatedec#
+ -> std.mk([
+ .rdf = bio.mkmem(in),
+ .bpos = 8,
+ ])
+}
+
+const eof = `std.Err (`flate.Io `bio.Eof)
+
+const bits = {ctx
+ var st
+
+ st = init("")
+ testr.eq(ctx, flate.bits(st, 1), eof)
+
+ st = init(" ")
+ testr.eq(ctx, flate.bits(st, 9), eof)
+
+ /* simple bit reading */
+ st = init("\xaa")
+ testr.eq(ctx, flate.bits(st, 0), `std.Ok 0)
+ testr.eq(ctx, flate.bits(st, 1), `std.Ok 0)
+ testr.eq(ctx, flate.bits(st, 1), `std.Ok 1)
+ testr.eq(ctx, flate.bits(st, 2), `std.Ok 2)
+ testr.eq(ctx, flate.bits(st, 3), `std.Ok 2)
+ testr.eq(ctx, flate.bits(st, 2), eof)
+
+ /* reading across byte boundaries */
+ st = init("\xaa\xaa")
+ testr.eq(ctx, flate.bits(st, 2), `std.Ok 2)
+ testr.eq(ctx, flate.bits(st, 8+2), `std.Ok 0x2aa)
+ testr.eq(ctx, flate.bits(st, 1), `std.Ok 0)
+ testr.eq(ctx, flate.bits(st, 4), eof)
+
+ /* reading whole bytes */
+ st = init("\xab\xcd")
+ testr.eq(ctx, flate.bits(st, 8), `std.Ok 0xab)
+ testr.eq(ctx, flate.bits(st, 8), `std.Ok 0xcd)
+
+ /* refilling */
+ st = init("")
+ var n = 0
+ var pn = &n
+ st.rdf = bio.mk(bio.Rd, [
+ .read = {buf
+ buf[0] = (++pn# : byte)
+ -> `std.Ok 1
+ }
+ ])
+ testr.eq(ctx, flate.bits(st, 3), `std.Ok 1)
+ testr.eq(ctx, flate.bits(st, 8), `std.Ok (2 << 5))
+ testr.eq(ctx, flate.bits(st, 10), `std.Ok (3 << 5))
+}
+
+const mkhufc = {ctx
+ var count
+ var ht
+
+ count = [
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ ][:]
+
+ flate.mkhufc([][:], &ht)
+ testr.check(ctx, std.eq(ht.count[:], count), "empty code")
+
+ flate.mkhufc([1, 1][:], &ht)
+ count[1] = 2
+ testr.check(ctx, std.eq(ht.count[:], count), "1-bit code")
+ testr.eq(ctx, ht.symbol[:2], [0, 1][:])
+
+ flate.mkhufc([2, 1, 3, 3][:], &ht)
+ std.slcp(count[1:4], [1, 1, 2][:])
+ testr.check(ctx, std.eq(ht.count[:], count), "rfc code")
+ testr.eq(ctx, ht.symbol[:4], [1, 0, 2, 3][:])
+}
+
+const readcode = {ctx
+ var st, ht
+
+ flate.mkhufc([2, 1, 3, 3][:], &ht)
+ st = init("\xcd\x05")
+ testr.eq(ctx, flate.readcode(st, &ht), `std.Ok 0)
+ testr.eq(ctx, flate.readcode(st, &ht), `std.Ok 2)
+ testr.eq(ctx, flate.readcode(st, &ht), `std.Ok 1)
+ testr.eq(ctx, flate.readcode(st, &ht), `std.Ok 3)
+ testr.eq(ctx, flate.readcode(st, &ht), `std.Ok 1)
+ testr.eq(ctx, flate.readcode(st, &ht), `std.Ok 0)
+ testr.eq(ctx, st.bpos, 4)
+
+ /* same as above with some empty codes */
+ flate.mkhufc([2, 1, 0, 0, 3, 0, 3][:], &ht)
+ st = init("\xcd\x05")
+ testr.eq(ctx, flate.readcode(st, &ht), `std.Ok 0)
+ testr.eq(ctx, flate.readcode(st, &ht), `std.Ok 4)
+ testr.eq(ctx, flate.readcode(st, &ht), `std.Ok 1)
+ testr.eq(ctx, flate.readcode(st, &ht), `std.Ok 6)
+ testr.eq(ctx, flate.readcode(st, &ht), `std.Ok 1)
+ testr.eq(ctx, flate.readcode(st, &ht), `std.Ok 0)
+ testr.eq(ctx, st.bpos, 4)
+
+ /* empty codes at the beginning */
+ flate.mkhufc([0, 0, 0, 4][:], &ht)
+ st = init("\x00")
+ testr.eq(ctx, flate.readcode(st, &ht), `std.Ok 3)
+ testr.eq(ctx, flate.readcode(st, &ht), `std.Ok 3)
+ testr.eq(ctx, flate.readcode(st, &ht), eof)
+}
+
+const bitsf = {str : byte[:]
+ var sl, n, b
+
+ sl = [][:]
+ n = 0
+ b = 0
+ for c : str
+ match (c : char)
+ | '0': n++
+ | '1': b += (1 << n); n++
+ | _: /* do nothing */
+ ;;
+ if n == 8
+ std.slpush(&sl, (b : byte))
+ n = 0
+ b = 0
+ ;;
+ ;;
+ std.slpush(&sl, (b : byte))
+ -> bio.mkmem(sl)
+}
+
+const expect = {ctx, t, str
+ var exp
+
+ exp = std.mk(str)
+ const write = {buf
+ if buf.len > exp#.len
+ testr.fail(ctx,
+ "({}) more bytes written than expected:" \
+ " '{}' written when expecting '{}'",
+ t, buf, exp#)
+ ;;
+ if !std.eq(buf, exp#[:buf.len])
+ testr.fail(ctx,
+ "({}) '{}' written when expecting '{}'",
+ t, buf, exp#[:buf.len])
+ ;;
+ exp# = exp#[buf.len:]
+ -> `std.Ok buf.len
+ }
+ const close = {
+ if exp#.len > 0
+ testr.fail(ctx,
+ "({}) output closed when still expecting '{}'",
+ t, exp#)
+ ;;
+ -> true
+ }
+ -> bio.mk(bio.Wr, [.write = write, .close = close])
+}
+
+type errortype = union
+ `None
+ `Eof
+ `Io
+ `Format
+;;
+
+const decode = {ctx
+ const tests = [
+ ("empty",
+ "",
+ "", `Eof),
+ ("reserved block",
+ "1 11 00",
+ "", `Format),
+ ("partial block",
+ "1 1",
+ "", `Eof), /* could be `Format error... */
+ ("uncompressed empty block",
+ "1 00 00000 0000000000000000 1111111111111111",
+ "", `None),
+ ("uncompressed 3-bytes block",
+ "1 00 00000 1100000000000000 0011111111111111" \
+ "10000110 01000110 11000110",
+ "abc", `None),
+ ("uncompressed 1-byte then 2-bytes block",
+ "0 00 00000 1000000000000000 0111111111111111" \
+ "10000110" \
+ "1 00 00000 0100000000000000 1011111111111111" \
+ "01000110 11000110",
+ "abc", `None),
+ ("uncompressed mismatched len nlen",
+ "1 00 00000 1000000000000000 0111111111111011" \
+ "10000110",
+ "", `Format),
+ ("fixed code single block",
+ "1 10 10011000 10010101 10011100 10011100" \
+ "10011111 01010001 0000000",
+ "hello!", `None),
+ ("dynamic code block",
+ // 'r' markers are used when bits must come in "reverse"
+ "1 01" \
+ "r00000 r00000 r1111" \ // 257 literal, 1 distance, 19 code codes
+ "r101 101 101 101 101 101 101 101 101 101 101 101" \
+ " 101 101 101 101 101 101 101" \ // All 14 code codes of length 5
+ "10010 r0110101" \ // 97 zeroes
+ "00011 00011 00011" \ // then three times 3
+ "10010 r1111111 10010 r1110000" \ // then 156 (= 11+127 + 11+7) zeroes
+ "00011" \ // then 3 once (end of block)
+ "00000" \ // one unused length code
+ "000 001 010 011", // finally, some data
+ "abc", `None),
+ ("dynamic code block with reference",
+ "1 01" \
+ "r01000 r10000 r1111" \ // 258 literal, 2 distance, 19 code codes
+ "r101 101 101 101 101 101 101 101 101 101 101 101" \
+ " 101 101 101 101 101 101 101" \ // All 14 code codes of length 5
+ "10010 r0110101" \ // 97 zeroes
+ "00011 00011 00011" \ // then three times 3
+ "10010 r1111111 10010 r1110000" \ // then 156 (= 11+127 + 11+7) zeroes
+ "00011 00000 00011" \ // then 3, 0, 3 (ref of length 4)
+ "00010 00010" \ // two size two distance code
+ "000 001 010 100 01 011", // use the reference at the end
+ "abcbcbc", `None),
+ ("dynamic code with invalid reference",
+ "1 01" \
+ "r01000 r10000 r1111" \
+ "r101 101 101 101 101 101 101 101 101 101 101 101" \
+ " 101 101 101 101 101 101 101" \
+ "10010 r0110101" \
+ "00011 00011 00011" \
+ "10010 r1111111 10010 r1110000" \
+ "00011 00000 00011" \
+ "00010 00010" \
+ "000 100 01",
+ "a", `Format),
+ ("dynamic code with cross-blocks reference",
+ "0 00 00000 1100000000000000 0011111111111111" \
+ "10000110 01000110 11000110" \ // "abc" uncompressed
+ "1 01" \
+ "r01000 r00000 r1000" \ // 258 literal, 1 distance, 5 code codes
+ "r110 110 110 000 010" \ // code lengths of 3, 3, 3, 0, 2
+ \ // for 16, 17, 18, 0, 8
+ "100 r1111111" \ // 138 zeroes
+ "100 r1101011" \ // +118 zeroes = 256 zeroes
+ "00" \ // 256 (=EOB) has length 8
+ "010 r00" \ // repeat this length 3 times
+ "00000001 00000000 00000000", // one reference, then EOB
+ "abcccc", `None),
+ ]
+ var outf, err
+
+ for (t, in, out, experr) : tests
+ outf = expect(ctx, t, out)
+ err = flate.decode(outf, bitsf(in))
+ match (err, experr)
+ | (`std.Ok _, `None):
+ | (`std.Err (`flate.Io `bio.Eof), `Eof):
+ | (`std.Err (`flate.Io _), `Io):
+ | (`std.Err (`flate.Format _), `Format):
+ | _:
+ testr.fail(ctx,
+ "({}) {} error expected but got {} instead",
+ t, experr, err)
+ ;;
+ bio.close(outf)
+ ;;
+}
+
+const main = {
+ testr.run([
+ [.name = "bits", .fn = bits],
+ [.name = "mkhufc", .fn = mkhufc],
+ [.name = "readcode", .fn = readcode],
+ [.name = "decode", .fn = decode],
+ ][:])
+}
--- /dev/null
+++ b/lib/flate/types.myr
@@ -1,0 +1,8 @@
+use bio
+
+pkg flate =
+ type err = union
+ `Io bio.err
+ `Format byte[:]
+ ;;
+;;
--- a/lib/http/url.myr
+++ b/lib/http/url.myr
@@ -60,7 +60,6 @@
const parseurl = {url
var schema, host, port, path, params
- std.put("url: {}\n", url)
match parseschema(&url)
| `std.Ok s: schema = s
| `std.Err e: -> `std.Err e
--- a/lib/math/bld.sub
+++ b/lib/math/bld.sub
@@ -46,3 +46,10 @@
lib ../std:std
;;
+
+testdeps =
+ math
+ ../testr:testr
+ ../sys:sys
+ ../std:std
+;;
--- a/lib/math/exp-impl.myr
+++ b/lib/math/exp-impl.myr
@@ -282,7 +282,11 @@
-> expm1gen(x, desc64)
}
-generic expm1gen = {x : @f, d : fltdesc(@f, @u, @i) :: numeric,floating,std.equatable @f, numeric,integral @u, numeric,integral @i, roundable @f -> @i
+generic expm1gen = {x : @f, d : fltdesc(@f, @u, @i) :: \
+ numeric,floating,std.equatable @f,
+ numeric,integral @u,
+ numeric,integral @i,
+ roundable @f -> @i
var b = d.tobits(x)
var n, e, s
(n, e, s) = d.explode(x)
--- a/lib/std/alloc.myr
+++ b/lib/std/alloc.myr
@@ -120,7 +120,7 @@
generic slfree = {sl
var head, sz
- if (sl : byte#) == Zsliceptr
+ if (sl : byte#) == Zslicep
-> void
;;
@@ -139,7 +139,7 @@
/* if the slice doesn't need a bigger bucket, we don't need to realloc. */
cap = 0
- if (sl# : byte#) != Zsliceptr
+ if (sl# : byte#) != Zslicep
cap = slcap((sl# : byte#))
;;
if cap >= len*sizeof(@a)
--- a/lib/std/bigint.myr
+++ b/lib/std/bigint.myr
@@ -192,16 +192,12 @@
die("invalid base in bigbfmt\n")
;;
- if bigiszero(x)
- n
- ;;
-
+ n = 0
if base == 0
b = mkbigint(10)
else
b = mkbigint(base)
;;
- n = 0
val = bigdup(x)
/* generate the digits in reverse order */
while !bigiszero(val)
--- a/lib/std/bld.sub
+++ b/lib/std/bld.sub
@@ -86,6 +86,9 @@
varargs.myr
writeall.myr
+ pledge.myr
+ pledge+openbsd.myr
+
# asm optimizations
memops.myr
memops-impl.myr
--- a/lib/std/bytealloc.myr
+++ b/lib/std/bytealloc.myr
@@ -15,16 +15,16 @@
const startalloctrace : (f : byte[:] -> void)
const endalloctrace : (-> void)
+ const bytealloc : (sz:size -> byte#)
+ const zbytealloc : (sz:size -> byte#)
+ const bytefree : (m:byte#, sz:size -> void)
+
/* null pointers. only used internally. */
- pkglocal const Zsliceptr = (0 : byte#)
- pkglocal const Align = 16 /* minimum allocation alignment */
+ pkglocal const Zslicep = (0 : byte#)
+ pkglocal const Align = 16 /* minimum allocation alignment */
- /* exported for testing */
- const bytealloc : (sz:size -> byte#)
- const bytefree : (m:byte#, sz:size -> void)
- pkglocal const zbytealloc : (sz:size -> byte#)
- pkglocal const align : (m : std.size, align : std.size -> std.size)
- pkglocal const allocsz : (sz : std.size -> std.size)
+ pkglocal const align : (m : std.size, align : std.size -> std.size)
+ pkglocal const allocsz : (sz : std.size -> std.size)
;;
@@ -292,6 +292,7 @@
die("Unable to get memory")
;;
+ b = Zchunk
s = (align((p : size), Slabsz) : slab#)
s.head = p
s.nfree = bkt.nper
--- a/lib/std/dial+plan9.myr
+++ b/lib/std/dial+plan9.myr
@@ -67,6 +67,7 @@
slfree(csaddr)
seek(csfd, 0, 0)
+ ret = -1
while true
match read(csfd, buf[:])
| `std.Ok len: n = len
@@ -81,14 +82,16 @@
;;
match call(clone, addr, netdir)
- | `Ok fd: break
| `Err _: /* nothing */
+ | `Ok fd:
+ ret = fd
+ break
;;
;;
close(csfd)
if ret < 0
- -> `Err "unable to dial"
+ -> `std.Err "could not dial"
;;
-> `Ok ret
}
@@ -102,6 +105,7 @@
datafd = `Err "didn't even try to open shit"
c = nsclonestr(clone, netdir)
+ cfd = -1
match open(c, Ordwr)
| `Err e: goto cleanup
| `Ok fd: cfd = fd
--- a/lib/std/env+posixy.myr
+++ b/lib/std/env+posixy.myr
@@ -25,10 +25,13 @@
var envduped : bool = false
var environ : byte#[:]
+const __init__ = {
+ envinit()
+}
+
const getenv = {name
var n, env
- envinit()
for envp : environ
if envp != Zenvp
env = cstrconvp(envp)
@@ -50,8 +53,6 @@
const setenv = {name, val
var n, e, env, idx, found
-
- envinit()
idx = 0
found = false
--- a/lib/std/errno.myr
+++ b/lib/std/errno.myr
@@ -38,4 +38,5 @@
const Epipe : errno = (sys.Epipe : errno)
const Edom : errno = (sys.Edom : errno)
const Erange : errno = (sys.Erange : errno)
+ const Etimedout : errno = (sys.Etimedout : errno)
;;
--- a/lib/std/execvp.myr
+++ b/lib/std/execvp.myr
@@ -1,11 +1,10 @@
use "alloc"
use "env"
use "errno"
-use "fmt"
use "option"
use "strfind"
-use "strsplit"
use "syswrap"
+use "slcp"
pkg std =
const execvp : (cmd : byte[:], args : byte[:][:] -> errno)
@@ -13,7 +12,7 @@
;;
const execvp = {cmd, args
- var paths, binpath
+ var i, j, paths, binpath
var buf : byte[512]
match strfind(cmd, "/")
@@ -20,18 +19,20 @@
| `Some _:
-> execv(cmd, args)
| `None:
- paths = getpaths()
- for p : paths
- binpath = bfmt(buf[:], "{}/{}", p, cmd)
+ i = 0
+ j = 0
+ paths = std.getenvv("PATH", "/usr/local/bin:/bin:/usr/bin")
+ while j < paths.len
+ (i, j) = nextpath(paths, j)
+ binpath = mkpath(buf[:], paths[i:j], cmd)
execv(binpath, args)
;;
- slfree(paths)
;;
-> -1
}
const execvpe = {cmd, args, env
- var paths, binpath
+ var i, j, paths, binpath
var buf : byte[512]
match strfind(cmd, "/")
@@ -38,21 +39,42 @@
| `Some _:
-> execve(cmd, args, env)
| `None:
- paths = getpaths()
- for p : paths
- binpath = bfmt(buf[:], "{}/{}", p, cmd)
+ i = 0
+ j = 0
+ paths = std.getenvv("PATH", "/usr/local/bin:/bin:/usr/bin")
+ while j < paths.len
+ (i, j) = nextpath(paths, j)
+ binpath = mkpath(buf[:], paths[i:j], cmd)
execve(binpath, args, env)
;;
- slfree(paths)
;;
-> -1
}
-const getpaths = {
- var path
- match getenv("PATH")
- | `Some p: path = p
- | `None: path = "/usr/local/bin:/bin:/usr/bin"
+const nextpath = {p, start
+ var i, j
+
+ i = start
+ while i < p.len && p[i] == (':' : byte)
+ i++
;;
- -> strsplit(path, ":")
+ j = i
+ while j < p.len && p[j] != (':' : byte)
+ j++
+ ;;
+ -> (i, j)
+}
+
+const mkpath = {buf, path, bin
+ var p, b
+
+ p = path.len
+ b = bin.len
+ if buf.len < p + b + 1
+ -> ""
+ ;;
+ std.slcp(buf[:p], path)
+ std.slcp(buf[p:p + 1], "/")
+ std.slcp(buf[p + 1:p + b + 1], bin)
+ -> buf[:p + b + 1]
}
--- a/lib/std/fltfmt.myr
+++ b/lib/std/fltfmt.myr
@@ -65,6 +65,8 @@
/* initialize */
roundup = false
+ low = false
+ high = false
u = mkbigint(0)
r = bigshli(mkbigint(f), max(e, 0))
s = bigshli(mkbigint(1), max(0, -e))
--- a/lib/std/htab.myr
+++ b/lib/std/htab.myr
@@ -131,23 +131,25 @@
generic htput = {ht, k, v
var i, di
var h
- var neltincr
+ var found
di = 0
h = xhash(k)
i = h & (ht.keys.len - 1)
- neltincr = 1
+ found = false
while ht.hashes[i] != 0 && !ht.dead[i]
if ht.hashes[i] == h && eq(ht.keys[i], k)
- neltincr = 0
+ found = true
break
;;
di++
i = (h + di) & (ht.keys.len - 1)
;;
- ht.nelt += neltincr
+ if !found
+ ht.keys[i] = k
+ ht.nelt++
+ ;;
ht.hashes[i] = h
- ht.keys[i] = k
ht.vals[i] = v
ht.dead[i] = false
if ht.keys.len < ht.nelt * 2
--- a/lib/std/listen+plan9.myr
+++ b/lib/std/listen+plan9.myr
@@ -113,11 +113,13 @@
| `None: -> `Err void
| `Some idx:
netdir = ds[:idx]
+ addr = ""
rest = ds[idx+1:]
;;
else
netdir = "/net"
addr = ds
+ rest = ""
;;
;;
@@ -143,7 +145,6 @@
close(fd)
;;
- put("cs returned: {}\n", r)
match strfind(r, " ")
| `None: -> `Err void
| `Some i:
--- /dev/null
+++ b/lib/std/pledge+openbsd.myr
@@ -1,0 +1,18 @@
+use sys
+use "errno"
+use "result"
+
+pkg std =
+ const pledge : (promise : byte[:], epromise : byte[:] -> result(void, errno))
+;;
+
+const pledge = {promise, epromise
+ var r
+
+ r = sys.pledge(sys.cstring(promise), sys.cstring(epromise))
+ if r < 0
+ -> `std.Err (r : errno)
+ else
+ -> `std.Ok void
+ ;;
+}
--- /dev/null
+++ b/lib/std/pledge.myr
@@ -1,0 +1,11 @@
+use sys
+use "errno"
+use "result"
+
+pkg std =
+ const pledge : (promise : byte[:], epromise : byte[:] -> result(void, errno))
+;;
+
+const pledge = {promise, epromise
+ -> `std.Ok void
+}
--- a/lib/std/spork.myr
+++ b/lib/std/spork.myr
@@ -10,7 +10,8 @@
const run : (cmd : byte[:][:] -> waitstatus)
const spork : (cmd : byte[:][:] -> result((pid, fd, fd), errno))
const espork : (cmd : byte[:][:] -> result((pid, fd, fd, fd), errno))
- const filterfd : (fd : fd, cmd : byte[:][:] -> result(pid, errno))
+ const sporkdir : (cmd : byte[:][:], dir : byte[:] -> result((pid, fd, fd), errno))
+ const esporkdir : (cmd : byte[:][:], dir : byte[:] -> result((pid, fd, fd, fd), errno))
;;
const run = {cmd
@@ -28,8 +29,15 @@
;;
}
-
const spork = {cmd
+ -> sporkdir(cmd, "")
+}
+
+const espork = {cmd
+ -> esporkdir(cmd, "")
+}
+
+const sporkdir = {cmd, dir
var infds : fd[2], outfds : fd[2]
var err
@@ -46,7 +54,7 @@
goto sporkerr
;;
- match sporkfd(cmd, infds, outfds, [-1, 2])
+ match sporkfd(cmd, dir, infds, outfds, [-1, 2])
| `Ok pid:
/* close unused fd ends */
close(infds[0]);
@@ -64,7 +72,7 @@
-> `Err err
}
-const espork = {cmd
+const esporkdir = {cmd, dir
var infds : fd[2], outfds : fd[2], errfds : fd[2]
var err
@@ -86,7 +94,7 @@
goto sporkerr
;;
- match sporkfd(cmd, infds, outfds, errfds)
+ match sporkfd(cmd, dir, infds, outfds, errfds)
| `Ok pid:
/* close unused fd ends */
close(infds[0]);
@@ -108,27 +116,7 @@
-> `Err err
}
-const filterfd = {fd, cmd
- var outfds : fd[2]
- var err
-
- err = pipe(&outfds)
- if err != Enone
- -> `Err err
- ;;
-
- match sporkfd(cmd, [fd, -1], outfds, [-1, 2])
- | `Ok pid:
- dup2(outfds[0], fd)
- close(outfds[0]);
- close(outfds[1]);
- -> `Ok pid
- | `Err e:
- -> `Err e
- ;;
-}
-
-const sporkfd = {cmd, infds, outfds, errfds
+const sporkfd = {cmd, dir, infds, outfds, errfds
var pid
pid = fork()
@@ -181,6 +169,9 @@
close(outfds[0])
close(errfds[0])
+ if dir.len != 0 && !chdir(dir)
+ std.die("could not chdir")
+ ;;
execvp(cmd[0], cmd)
/* if fork succeeds, we never return */
suicide()
--- a/lib/std/striter.myr
+++ b/lib/std/striter.myr
@@ -3,6 +3,7 @@
use "utf"
use "strfind"
use "option"
+use "chartype"
pkg std =
type chariter = struct
@@ -19,13 +20,20 @@
split : byte[:]
;;
+ type tokiter = struct
+ str : byte[:]
+ idx : size
+ ;;
+
impl iterable chariter -> char
impl iterable charoffiter -> (char, size)
impl iterable splititer -> byte[:]
+ impl iterable tokiter -> byte[:]
const bychar : (str : byte[:] -> chariter)
const bycharoff : (str : byte[:] -> charoffiter)
const bysplit : (str : byte[:], split : byte[:] -> splititer)
+ const bytok : (str : byte[:] -> tokiter)
;;
impl iterable chariter -> char =
@@ -90,4 +98,38 @@
const bysplit = {str, split
-> [.rest = str, .split = split]
+}
+
+impl iterable tokiter -> byte[:] =
+ __iternext__ = {it, sp
+ var s, lo, hi, c
+
+ s = it.str
+ lo = it.idx
+ while lo < s.len
+ c = std.decode(s[lo:])
+ if !isspace(c)
+ break
+ ;;
+ lo += charlen(c)
+ ;;
+ hi = lo
+ while hi < s.len
+ c = std.decode(s[hi:])
+ if isspace(c)
+ break
+ ;;
+ hi += charlen(c)
+ ;;
+ it.idx = hi
+ sp# = s[lo:hi]
+ -> hi > lo
+ }
+
+ __iterfin__ = {ci, c
+ }
+;;
+
+const bytok = {str
+ -> [.str = str, .idx = 0]
}
--- a/lib/std/syswrap+posixy.myr
+++ b/lib/std/syswrap+posixy.myr
@@ -92,7 +92,13 @@
/* path manipulation */
const mkdir = {path, mode; -> (sys.mkdir(path, mode) : errno)}
const chdir = {path; -> sys.chdir(path) == 0}
-const remove = {path; -> sys.unlink(path) == 0}
+const remove = {path;
+ if std.fisdir(path)
+ -> sys.rmdir(sys.cstring(path)) == 0
+ else
+ -> sys.unlink(path) == 0
+ ;;
+}
/* useful/portable bits of uname */
const getsysinfo = {si
--- a/lib/sys/sys+freebsd-x64.myr
+++ b/lib/sys/sys+freebsd-x64.myr
@@ -581,6 +581,13 @@
node : uint8[_Uuidnodesz];
;;
+ const Umtxabstime = 1
+ type _umtx_time = struct
+ _timeout : timespec
+ _flags : uint32
+ _clockid : uint32
+ ;;
+
/* open options */
const Ordonly : fdopt = 0x0
const Owronly : fdopt = 0x1
--- a/lib/sys/sys+netbsd-x64.myr
+++ b/lib/sys/sys+netbsd-x64.myr
@@ -853,6 +853,7 @@
const close : (fd:fd -> int64)
const creat : (path:byte[:], mode:int64 -> fd)
const unlink : (path:byte[:] -> int)
+ const rmdir : (path:byte# -> int)
const read : (fd:fd, buf:byte[:] -> size)
const pread : (fd:fd, buf:byte[:], off : off -> size)
const readv : (fd:fd, iov:iovec[:] -> size)
@@ -907,6 +908,7 @@
new : void#, newsz : size# \
-> int)
+ extern const cstring : (str : byte[:] -> byte#)
/* filled by start code */
extern var __cenvp : byte##
;;
@@ -917,7 +919,6 @@
*/
generic a = {x : @t; -> (x : uint64)}
-extern const cstring : (str : byte[:] -> byte#)
extern const alloca : (sz : size -> byte#)
/* process management */
@@ -985,6 +986,7 @@
const close = {fd; -> syscall(Sysclose, a(fd))}
const creat = {path, mode; -> (openmode(path, Ocreat | Otrunc | Owronly, mode) : fd)}
const unlink = {path; -> (syscall(Sysunlink, cstring(path)) : int)}
+const rmdir = {path; -> (syscall(Sysunlink, a(path)) : int)}
const read = {fd, buf; -> (syscall(Sysread, a(fd), (buf : byte#), a(buf.len)) : size)}
const pread = {fd, buf, off; -> (syscall(Syspread, a(fd), (buf : byte#), a(buf.len), a(off)) : size)}
const readv = {fd, vec; -> (syscall(Sysreadv, a(fd), (vec : iovec#), a(vec.len)) : size)}
--- a/lib/sys/sys+openbsd:6.1-x64.myr
+++ b/lib/sys/sys+openbsd:6.1-x64.myr
@@ -272,7 +272,7 @@
const Mfixed : mopt = 0x10
const Mfile : mopt = 0x0
const Manon : mopt = 0x1000
- const Mstack : mopt = 0x4000
+ const Mstack : mopt = 0
const Mnoreplace : mopt = 0x0800
/* file types */
--- a/lib/sys/sys+openbsd:6.2-x64.myr
+++ b/lib/sys/sys+openbsd:6.2-x64.myr
@@ -947,7 +947,7 @@
const dup3 : (from : int, to : int, flags : int -> int)
const sigreturn : (sigcntxp : sigcontext# -> int)
const chflagsat : (fd : int, path : byte#, flags : uint, atflags : int -> int)
- const pledge : (request : byte#, paths : byte## -> int)
+ const pledge : (request : byte#, paths : byte# -> int)
const ppoll : (fds : pollfd#, nfds : uint, ts : timespec#, mask : sigset# -> int)
const pselect : (nd : int, _in : fdset#, ou : fdset#, ex : fdset#, ts : timespec#, mask : sigset# -> int)
const sigsuspend : (mask : int -> int)
--- a/lib/sys/sys+osx-x64.myr
+++ b/lib/sys/sys+osx-x64.myr
@@ -18,6 +18,7 @@
type machport = int32
type signo = int32
type sigflags = int32
+ type ulockop = uint32
type fdset = struct
bits : int32[1024/4]
@@ -388,6 +389,14 @@
const Sigusr1 : signo = 30 /* user defined signal 1 */
const Sigusr2 : signo = 31 /* user defined signal 2 */
+ /* ulock ops */
+ const Ulockcompareandwait : ulockop = 0x00000001
+ const Ulockunfairlock : ulockop = 0x00000002
+ const Ulockulfwakeall : ulockop = 0x00000100
+ const Ulockulfwakethread : ulockop = 0x00000200
+ const Ulockwaitworkqdatacontention : ulockop = 0x00010000
+ const Ulocknoerrno : ulockop = 0x01000000
+
/* syscalls.
note, creat() implemented as open(path, Creat|Trunc|Wronly) */
const Syssyscall : scno = 0x2000000
@@ -737,6 +746,8 @@
const Syspid_resume : scno = 0x20001af
const Sysfileport_makeport : scno = 0x20001b0
const Sysfileport_makefd : scno = 0x20001b1
+ const Sysulock_wait : scno = 0x2000203
+ const Sysulock_wake : scno = 0x2000204
extern const syscall : (sc:scno, args:... -> int64)
@@ -762,6 +773,7 @@
const rename : (from : byte[:], to : byte[:] -> int64)
const creat : (path:byte[:], mode:int64 -> fd)
const unlink : (path:byte[:] -> int)
+ const rmdir : (path:byte# -> int)
const read : (fd:fd, buf:byte[:] -> size)
const pread : (fd:fd, buf:byte[:], off : off -> size)
const write : (fd:fd, buf:byte[:] -> size)
@@ -823,6 +835,10 @@
new : void#, newsz : size# \
-> int)
+ /* ulock */
+ const ulock_wait : (op : ulockop, uaddr : uint64#, val : uint64, timeout : uint32 -> int)
+ const ulock_wake : (op : ulockop, uaddr : uint64#, wakeval : uint64 -> int)
+
/* filled by start code */
extern var __cenvp : byte##
;;
@@ -930,6 +946,7 @@
const rename = {from, to; -> syscall(Sysrename, cstring(from), cstring(to))}
const creat = {path, mode; -> (openmode(path, Ocreat | Otrunc | Owronly, mode) : fd)}
const unlink = {path; -> (syscall(Sysunlink, cstring(path)) : int)}
+const rmdir = {path; -> (syscall(Sysunlink, a(path)) : int)}
const read = {fd, buf; -> (syscall(Sysread, a(fd), (buf : byte#), a(buf.len)) : size)}
const pread = {fd, buf, off; -> (syscall(Syspread, a(fd), (buf : byte#), a(buf.len), a(off)) : size)}
const write = {fd, buf; -> (syscall(Syswrite, a(fd), (buf : byte#), a(buf.len)) : size)}
@@ -1079,6 +1096,14 @@
/* all args already passed through a() or ar ptrs */
-> (syscall(Sys__sysctl, \
(mib : int#), a(mib.len), old, oldsz, new, newsz) : int)
+}
+
+const ulock_wait = {op, uaddr, val, timeout
+ -> (syscall(Sysulock_wait, a(op), uaddr, val, a(timeout)) : int)
+}
+
+const ulock_wake = {op, uaddr, wakeval
+ -> (syscall(Sysulock_wake, a(op), uaddr, a(wakeval)) : int)
}
const waitstatus = {st
--- a/lib/sys/sys+plan9-x64.myr
+++ b/lib/sys/sys+plan9-x64.myr
@@ -159,9 +159,9 @@
const exec : (bin : byte[:], args : byte[:][:] -> int64)
const brk_ : (endp : byte# -> int64)
const nsec : (-> uint64)
- const semacquire : (addr : uint32#, block : int -> int)
- const tsemacquire : (addr : uint32#, ms : uint32 -> int)
- const semrelease : (addr : uint32#, count : int32 -> int32)
+ const semacquire : (addr : int32#, block : int -> int)
+ const tsemacquire : (addr : int32#, ms : int32 -> int)
+ const semrelease : (addr : int32#, count : int32 -> int32)
const rendezvous : (tag : void#, val : void# -> void#)
--- a/lib/sys/syserrno+linux.myr
+++ b/lib/sys/syserrno+linux.myr
@@ -35,4 +35,5 @@
const Epipe : errno = -32 /* Broken pipe */
const Edom : errno = -33 /* Math argument out of domain of func */
const Erange : errno = -34 /* Math result not representable */
+ const Etimedout : errno = -110 /* Operation timed out */
;;
--- a/lib/sys/syserrno+osx.myr
+++ b/lib/sys/syserrno+osx.myr
@@ -51,4 +51,5 @@
const Eprototype : errno = -41 /* Protocol wrong type for socket */
const Enoprotoopt : errno = -42 /* Protocol not available */
const Eprotonosupport : errno = -43 /* Protocol not supported */
+ const Etimedout : errno = -60 /* Operation timed out */
;;
--- a/lib/thread/atomic.myr
+++ b/lib/thread/atomic.myr
@@ -1,4 +1,5 @@
use std
+use "common"
pkg thread =
trait atomic @a :: integral,numeric @a =
@@ -13,6 +14,31 @@
impl atomic int64
impl atomic uint32
impl atomic uint64
+
+ generic xgetptr : (p : @a## -> std.option(@a#))
+ generic xsetptr : (p : @a##, v : std.option(@a#) -> void)
+ generic xcasptr : (p : @a##, old : std.option(@a#), new : std.option(@a#) -> std.option(@a#))
+ generic xchgptr : (p : @a##, new : std.option(@a#) -> std.option(@a#))
+
+ pkglocal extern const xget32 : (p : uint32# -> uint32)
+ pkglocal extern const xget64 : (p : uint64# -> uint64)
+ pkglocal extern const xgetp : (p : std.intptr# -> std.intptr)
+
+ pkglocal extern const xset32 : (p : uint32#, v : uint32 -> void)
+ pkglocal extern const xset64 : (p : uint64#, v : uint64 -> void)
+ pkglocal extern const xsetp : (p : std.intptr#, v : std.intptr -> void)
+
+ pkglocal extern const xadd32 : (p : uint32#, v : uint32 -> uint32)
+ pkglocal extern const xadd64 : (p : uint64#, v : uint64 -> uint64)
+ pkglocal extern const xaddp : (p : std.intptr#, v : std.intptr -> std.intptr)
+
+ pkglocal extern const xcas32 : (p : uint32#, old: uint32, new : uint32 -> uint32)
+ pkglocal extern const xcas64 : (p : uint64#, old: uint64, new : uint64 -> uint64)
+ pkglocal extern const xcasp : (p : std.intptr#, old: std.intptr, new : std.intptr -> std.intptr)
+
+ pkglocal extern const xchg32 : (p : uint32#, v : uint32 -> uint32)
+ pkglocal extern const xchg64 : (p : uint64#, v : uint64 -> uint64)
+ pkglocal extern const xchgp : (p : std.intptr#, v : std.intptr -> std.intptr)
;;
impl atomic int32 =
@@ -57,22 +83,28 @@
xchg = {p, v; -> xchgp(p, v)}
;;
-extern const xget32 : (p : uint32# -> uint32)
-extern const xget64 : (p : uint64# -> uint64)
-extern const xgetp : (p : std.intptr# -> std.intptr)
+generic xgetptr = {p
+ match xget((p : std.intptr#))
+ | 0: -> `std.None
+ | n: -> `std.Some (n : @a#)
+ ;;
+}
-extern const xset32 : (p : uint32#, v : uint32 -> void)
-extern const xset64 : (p : uint64#, v : uint64 -> void)
-extern const xsetp : (p : std.intptr#, v : std.intptr -> void)
+generic xsetptr = {p, v
+ xset((p : std.intptr#), (std.getv(v, Zptr) : std.intptr))
+}
-extern const xadd32 : (p : uint32#, v : uint32 -> uint32)
-extern const xadd64 : (p : uint64#, v : uint64 -> uint64)
-extern const xaddp : (p : std.intptr#, v : std.intptr -> std.intptr)
+generic xcasptr = {p, old, new
+ match xcas((p : std.intptr#), (std.getv(old, Zptr) : std.intptr), (std.getv(new, Zptr) : std.intptr))
+ | 0: -> `std.None
+ | n: -> `std.Some (n : @a#)
+ ;;
+}
-extern const xcas32 : (p : uint32#, old: uint32, new : uint32 -> uint32)
-extern const xcas64 : (p : uint64#, old: uint64, new : uint64 -> uint64)
-extern const xcasp : (p : std.intptr#, old: std.intptr, new : std.intptr -> std.intptr)
+generic xchgptr = {p, new
+ match xchg((p : std.intptr#), (std.getv(new, Zptr) : std.intptr))
+ | 0: -> `std.None
+ | n: -> `std.Some (n : @a#)
+ ;;
+}
-extern const xchg32 : (p : uint32#, v : uint32 -> uint32)
-extern const xchg64 : (p : uint64#, v : uint64 -> uint64)
-extern const xchgp : (p : std.intptr#, v : std.intptr -> std.intptr)
--- a/lib/thread/bld.sub
+++ b/lib/thread/bld.sub
@@ -1,7 +1,10 @@
lib thread =
common.myr
hookstd.myr # install thread hooks
+ mutex+futex.myr
+ sem+futex.myr
mutex.myr # fallback, for unimplemented platforms
+ sem.myr # fallback, for unimplemented platforms
#generic fallbacks
ncpu.myr
@@ -9,7 +12,7 @@
# linux impl of basic thread primitives
#condvar+linux.myr
exit+linux-x64.s
- mutex+linux.myr
+ futex+linux.myr
ncpu+linux.myr
spawn+linux.myr
@@ -16,7 +19,7 @@
# freebsd impl of thread primitives
#condvar+freebsd.myr
exit+freebsd-x64.s
- mutex+freebsd.myr
+ futex+freebsd.myr
ncpu+freebsd.myr
spawn+freebsd.myr
@@ -29,6 +32,7 @@
# osx impl of thread primitives
#condvar+osx.myr
+ futex+osx.myr
spawn+osx.myr
start+osx-x64.s
@@ -37,11 +41,12 @@
atomic-impl+plan9-x64.s
mutex+plan9.myr
ncpu+plan9.myr
+ sem+plan9.myr
spawn+plan9.myr
# openbsd impl of thread primitives
exit+openbsd-x64.s
- mutex+openbsd:6.2.myr
+ futex+openbsd:6.2.myr
ncpu+openbsd.myr
spawn+openbsd.myr
--- /dev/null
+++ b/lib/thread/futex+freebsd.myr
@@ -1,0 +1,41 @@
+use sys
+
+use "atomic"
+use "common"
+
+pkg thread =
+ type ftxtag = uint32
+ impl atomic ftxtag
+
+ const ftxwait : (uaddr : ftxtag#, val : ftxtag, timeout : sys.timespec# -> int)
+ const ftxwake : (uaddr : ftxtag# -> int)
+;;
+
+const ftxwait = {uaddr, val, timeout
+ if timeout == Zptr
+ -> sys.umtx_op((uaddr : void#), sys.Umtxwaituintpriv, (val : uint64), Zptr, Zptr)
+ ;;
+
+ var ut : sys._umtx_time = [
+ ._timeout = timeout#,
+ ._flags = (sys.Umtxabstime : uint32),
+ ._clockid = 1, /* CLOCK_MONOTONIC. Not exported from sys. */
+ ]
+ -> sys.umtx_op((uaddr : void#),
+ sys.Umtxwaituintpriv,
+ (val : uint64),
+ (sizeof(sys._umtx_time) : void#),
+ (&ut : void#))
+}
+
+const ftxwake = {uaddr
+ -> sys.umtx_op((uaddr : void#), sys.Umtxwakepriv, 1, Zptr, Zptr)
+}
+
+impl atomic ftxtag =
+ xget = {p; -> (xget32((p : uint32#)) : ftxtag)}
+ xset = {p, v; xset32((p : uint32#), (v : uint32))}
+ xadd = {p, v; -> (xadd32((p : uint32#), (v : uint32)) : ftxtag)}
+ xcas = {p, old, new; -> (xcas32((p : uint32#), (old : uint32), (new : uint32)) : ftxtag)}
+ xchg = {p, v; -> (xchg32((p : uint32#), (v : uint32)) : ftxtag)}
+;;
--- /dev/null
+++ b/lib/thread/futex+linux.myr
@@ -1,0 +1,33 @@
+use sys
+
+use "atomic"
+use "common"
+
+pkg thread =
+ type ftxtag = uint32
+ impl atomic ftxtag
+
+ const ftxwait : (uaddr : ftxtag#, val : ftxtag, timeout : sys.timespec# -> int)
+ const ftxwake : (uaddr : ftxtag# -> int)
+;;
+
+const ftxwait = {uaddr, val, timeout
+ -> (sys.futex((uaddr : int32#),
+ sys.Futexwait | sys.Futexpriv,
+ (val : int32),
+ timeout,
+ Zptr,
+ 0) : int)
+}
+
+const ftxwake = {uaddr
+ -> (sys.futex((uaddr : int32#), sys.Futexwake | sys.Futexpriv, 1, Zptr, Zptr, 0) : int)
+}
+
+impl atomic ftxtag =
+ xget = {p; -> (xget32((p : uint32#)) : ftxtag)}
+ xset = {p, v; xset32((p : uint32#), (v : uint32))}
+ xadd = {p, v; -> (xadd32((p : uint32#), (v : uint32)) : ftxtag)}
+ xcas = {p, old, new; -> (xcas32((p : uint32#), (old : uint32), (new : uint32)) : ftxtag)}
+ xchg = {p, v; -> (xchg32((p : uint32#), (v : uint32)) : ftxtag)}
+;;
--- /dev/null
+++ b/lib/thread/futex+openbsd:6.2.myr
@@ -1,0 +1,29 @@
+use sys
+
+use "atomic"
+use "common"
+
+pkg thread =
+ type ftxtag = uint32
+ impl atomic ftxtag
+
+ const ftxwait : (uaddr : ftxtag#, val : ftxtag, timeout : sys.timespec# -> int)
+ const ftxwake : (uaddr : ftxtag# -> int)
+;;
+
+const ftxwait = {uaddr, val, timeout
+ -> sys.futex((uaddr : uint32#), sys.Futexwait, (val : int), timeout, Zptr)
+}
+
+const ftxwake = {uaddr
+ -> sys.futex((uaddr : uint32#), sys.Futexwake, 1, Zptr, Zptr)
+}
+
+impl atomic ftxtag =
+ xget = {p; -> (xget32((p : uint32#)) : ftxtag)}
+ xset = {p, v; xset32((p : uint32#), (v : uint32))}
+ xadd = {p, v; -> (xadd32((p : uint32#), (v : uint32)) : ftxtag)}
+ xcas = {p, old, new; -> (xcas32((p : uint32#), (old : uint32), (new : uint32)) : ftxtag)}
+ xchg = {p, v; -> (xchg32((p : uint32#), (v : uint32)) : ftxtag)}
+;;
+
--- /dev/null
+++ b/lib/thread/futex+osx.myr
@@ -1,0 +1,57 @@
+use std
+use sys
+
+use "atomic"
+use "common"
+
+pkg thread =
+ type ftxtag = uint64
+ impl atomic ftxtag
+
+ const ftxwait : (uaddr : ftxtag#, val : ftxtag, timeout : sys.timespec# -> int)
+ const ftxwake : (uaddr : ftxtag# -> int)
+;;
+
+/*
+ * The ulock_ functions are undocumented but the relevant source can be found at
+ * https://github.com/apple/darwin-xnu/blob/0a798f6738bc1db01281fc08ae024145e84df927/bsd/kern/sys_ulock.c
+ */
+const ftxwait = {uaddr, val, timeout
+ if timeout == Zptr
+ -> sys.ulock_wait(sys.Ulockcompareandwait, (uaddr : uint64#), (val : uint64), 0)
+ ;;
+
+ var ts
+ var err = sys.clock_gettime(`sys.Clockmonotonic, &ts)
+ std.assert(err == 0, "error: clock_gettime returned {}\n", err)
+ if timeout.sec < ts.sec
+ -> (std.Etimedout : int)
+ ;;
+
+ var usec = 0
+ var sec = (timeout.sec - ts.sec) * 1000
+ std.assert(sec <= 0xffffffff, "error: maximum futex timeout exceeded\n")
+ usec = (sec : uint32)
+ if timeout.nsec > ts.nsec
+ var nsec = (timeout.nsec - ts.nsec) / 1000
+ std.assert(usec + nsec > usec, "error: maximum futex timeout exceeded\n")
+ usec += nsec
+ ;;
+
+ if usec == 0
+ -> (std.Etimedout : int)
+ ;;
+ -> sys.ulock_wait(sys.Ulockcompareandwait, (uaddr : uint64#), (val : uint64), usec)
+}
+
+const ftxwake = {uaddr
+ -> sys.ulock_wake(sys.Ulockcompareandwait, (uaddr : uint64#), 0)
+}
+
+impl atomic ftxtag =
+ xget = {p; -> (xget64((p : uint64#)) : ftxtag)}
+ xset = {p, v; xset64((p : uint64#), (v : uint64))}
+ xadd = {p, v; -> (xadd64((p : uint64#), (v : uint64)) : ftxtag)}
+ xcas = {p, old, new; -> (xcas64((p : uint64#), (old : uint64), (new : uint64)) : ftxtag)}
+ xchg = {p, v; -> (xchg64((p : uint64#), (v : uint64)) : ftxtag)}
+;;
--- a/lib/thread/mutex+freebsd.myr
+++ /dev/null
@@ -1,81 +1,0 @@
-use std
-use sys
-
-use "atomic"
-use "common"
-
-pkg thread =
- type mutex = struct
- _state : uint32
- ;;
-
- const mkmtx : (-> mutex)
- const mtxlock : (mtx : mutex# -> void)
- const mtxtrylock : (mtx : mutex# -> bool)
- const mtxunlock : (mtx : mutex# -> void)
-
- pkglocal const Unlocked = 0
- pkglocal const Locked = 1
- pkglocal const Contended = 2
-;;
-
-var nspin = 10 /* FIXME: pick a sane number, based on CPU count */
-
-const mkmtx = {
- -> [._state = Unlocked]
-}
-
-const mtxlock = {mtx
- var c
-
- /*
- Uncontended case: we get an unlocked mutex, and we lock it.
- */
- c = Locked
- for var i = 0; i < nspin; i++
- c = xcas(&mtx._state, Unlocked, Locked)
- if c == Unlocked
- -> void
- ;;
- sys.sched_yield()
- ;;
-
- /*
- Contended case: we set the lock state to Contended. This indicates that there
- the lock is locked, and we potentially have threads waiting on it, which means
- that we will need to wake them up.
- */
- if c == Locked
- c = xchg(&mtx._state, Contended)
- ;;
-
- while c != Unlocked
- sys.umtx_op( \
- (&mtx._state : void#), \
- sys.Umtxwaituintpriv, \
- (Contended : uint64), \
- Zptr, Zptr)
- c = xchg(&mtx._state, Contended)
- ;;
-}
-
-const mtxtrylock = {mtx
- -> xcas(&mtx._state, Unlocked, Locked) == Unlocked
-}
-
-const mtxunlock = {mtx
- /*
- Uncontended case: If the mutex state is not contended, and we still
- are uncontended by the xchg() call, then it's safe to simply return;
- nobody was waiting for us.
- */
- if mtx._state == Contended
- mtx._state = Unlocked
- elif xchg(&mtx._state, Unlocked) == Locked
- -> void
- ;;
-
- /* wake all threads: for some reason nwake */
- sys.umtx_op((&mtx._state : void#), sys.Umtxwakepriv, 1, Zptr, Zptr)
-}
-
--- /dev/null
+++ b/lib/thread/mutex+futex.myr
@@ -1,0 +1,75 @@
+use sys
+
+use "atomic"
+use "common"
+use "futex"
+
+pkg thread =
+ type mutex = struct
+ _state : ftxtag
+ ;;
+
+ const mkmtx : (-> mutex)
+ const mtxlock : (mtx : mutex# -> void)
+ const mtxtrylock : (mtx : mutex# -> bool)
+ const mtxunlock : (mtx : mutex# -> void)
+
+ pkglocal const Unlocked = 0
+ pkglocal const Locked = 1
+ pkglocal const Contended = 2
+;;
+
+var nspin = 10 /* FIXME: pick a sane number, based on CPU count */
+
+const mkmtx = {
+ -> [._state = Unlocked]
+}
+
+const mtxlock = {mtx
+ var c
+
+ /*
+ Uncontended case: we get an unlocked mutex, and we lock it.
+ */
+ c = Locked
+ for var i = 0; i < nspin; i++
+ c = xcas(&mtx._state, Unlocked, Locked)
+ if c == Unlocked
+ -> void
+ ;;
+ ;;
+
+ /*
+ Contended case: we set the lock state to Contended. This indicates that there
+ the lock is locked, and we potentially have threads waiting on it, which means
+ that we will need to wake them up.
+ */
+ if c == Locked
+ c = xchg(&mtx._state, Contended)
+ ;;
+
+ while c != Unlocked
+ ftxwait(&mtx._state, Contended, Zptr)
+ c = xchg(&mtx._state, Contended)
+ ;;
+}
+
+const mtxtrylock = {mtx
+ -> xcas(&mtx._state, Unlocked, Locked) == Unlocked
+}
+
+const mtxunlock = {mtx
+ /*
+ Uncontended case: If the mutex state is not contended, and we still
+ are uncontended by the xchg() call, then it's safe to simply return;
+ nobody was waiting for us.
+ */
+ if mtx._state == Contended
+ mtx._state = Unlocked
+ elif xchg(&mtx._state, Unlocked) == Locked
+ -> void
+ ;;
+
+ /* wake one thread */
+ ftxwake(&mtx._state)
+}
--- a/lib/thread/mutex+linux.myr
+++ /dev/null
@@ -1,76 +1,0 @@
-use std
-use sys
-
-use "atomic"
-use "common"
-
-pkg thread =
- type mutex = struct
- _state : int32
- ;;
-
- const mkmtx : (-> mutex)
- const mtxlock : (mtx : mutex# -> void)
- const mtxtrylock : (mtx : mutex# -> bool)
- const mtxunlock : (mtx : mutex# -> void)
-
- pkglocal const Unlocked = 0
- pkglocal const Locked = 1
- pkglocal const Contended = 2
-;;
-
-var nspin = 10 /* FIXME: pick a sane number, based on CPU count */
-
-const mkmtx = {
- -> [._state = Unlocked]
-}
-
-const mtxlock = {mtx
- var c
-
- /*
- Uncontended case: we get an unlocked mutex, and we lock it.
- */
- c = Locked
- for var i = 0; i < nspin; i++
- c = xcas(&mtx._state, Unlocked, Locked)
- if c == Unlocked
- -> void
- ;;
- ;;
-
- /*
- Contended case: we set the lock state to Contended. This indicates that there
- the lock is locked, and we potentially have threads waiting on it, which means
- that we will need to wake them up.
- */
- if c == Locked
- c = xchg(&mtx._state, Contended)
- ;;
-
- while c != Unlocked
- sys.futex(&mtx._state, sys.Futexwait | sys.Futexpriv, Contended, Zptr, Zptr, 0)
- c = xchg(&mtx._state, Contended)
- ;;
-}
-
-const mtxtrylock = {mtx
- -> xcas(&mtx._state, Unlocked, Locked) == Unlocked
-}
-
-const mtxunlock = {mtx
- /*
- Uncontended case: If the mutex state is not contended, and we still
- are uncontended by the xchg() call, then it's safe to simply return;
- nobody was waiting for us.
- */
- if mtx._state == Contended
- mtx._state = Unlocked
- elif xchg(&mtx._state, Unlocked) == Locked
- -> void
- ;;
-
- /* wake one thread */
- sys.futex(&mtx._state, sys.Futexwake | sys.Futexpriv, 1, Zptr, Zptr, 0)
-}
-
--- a/lib/thread/mutex+openbsd:6.2.myr
+++ /dev/null
@@ -1,76 +1,0 @@
-use std
-use sys
-
-use "atomic"
-use "common"
-
-pkg thread =
- type mutex = struct
- _state : uint32
- ;;
-
- const mkmtx : (-> mutex)
- const mtxlock : (mtx : mutex# -> void)
- const mtxtrylock : (mtx : mutex# -> bool)
- const mtxunlock : (mtx : mutex# -> void)
-
- pkglocal const Unlocked : uint32 = 0
- pkglocal const Locked : uint32 = 1
- pkglocal const Contended : uint32 = 2
-;;
-
-var nspin = 10 /* FIXME: pick a sane number, based on CPU count */
-
-const mkmtx = {
- -> [._state = Unlocked]
-}
-
-const mtxlock = {mtx
- var c
-
- /*
- Uncontended case: we get an unlocked mutex, and we lock it.
- */
- c = Locked
- for var i = 0; i < nspin; i++
- c = xcas(&mtx._state, Unlocked, Locked)
- if c == Unlocked
- -> void
- ;;
- ;;
-
- /*
- Contended case: we set the lock state to Contended. This indicates that there
- the lock is locked, and we potentially have threads waiting on it, which means
- that we will need to wake them up.
- */
- if c == Locked
- c = xchg(&mtx._state, Contended)
- ;;
-
- while c != Unlocked
- sys.futex(&mtx._state, sys.Futexwait, (Contended : int), Zptr, Zptr)
- c = xchg(&mtx._state, Contended)
- ;;
-}
-
-const mtxtrylock = {mtx
- -> xcas(&mtx._state, Unlocked, Locked) == Unlocked
-}
-
-const mtxunlock = {mtx
- /*
- Uncontended case: If the mutex state is not contended, and we still
- are uncontended by the xchg() call, then it's safe to simply return;
- nobody was waiting for us.
- */
- if mtx._state == Contended
- mtx._state = Unlocked
- elif xchg(&mtx._state, Unlocked) == Locked
- -> void
- ;;
-
- /* wake one thread */
- sys.futex(&mtx._state, sys.Futexwake, 1, Zptr, Zptr)
-}
-
--- a/lib/thread/mutex+plan9.myr
+++ b/lib/thread/mutex+plan9.myr
@@ -7,8 +7,8 @@
pkg thread =
type mutex = struct
- _state : uint32
- _sem : uint32
+ _state : int32
+ _sem : int32
;;
const mkmtx : (-> mutex)
--- /dev/null
+++ b/lib/thread/sem+futex.myr
@@ -1,0 +1,55 @@
+use std
+use sys
+
+use "atomic"
+use "common"
+use "futex"
+
+pkg thread =
+ type sem = struct
+ _val : ftxtag
+ ;;
+
+ const mksem : (v : uint32 -> sem)
+ const semwait : (s : sem# -> void)
+ const semtrywait : (s : sem# -> bool)
+ const sempost : (s : sem# -> void)
+;;
+
+const mksem = {v
+ -> [._val = (v : ftxtag)]
+}
+
+const semwait = {s
+ var v = 0
+
+ for ; ;
+ while (v = s._val) > 0
+ if xcas(&s._val, v, v - 1) == v
+ -> void
+ ;;
+ ;;
+ ftxwait(&s._val, v, Zptr)
+ ;;
+ -> void /* Unreachable */
+}
+
+const semtrywait = {s
+ for ; ;
+ var v = xget(&s._val)
+ if v == 0
+ -> false
+ ;;
+ if xcas(&s._val, v, v - 1) == v
+ -> true
+ ;;
+ ;;
+ -> false /* Unreachable */
+}
+
+const sempost = {s
+ std.assert((xadd(&s._val, 1) : uint32) != ~0x0, "error: semaphore overflowed\n")
+
+ /* Unconditionally wake one waiter */
+ ftxwake(&s._val)
+}
--- /dev/null
+++ b/lib/thread/sem+plan9.myr
@@ -1,0 +1,55 @@
+use std
+use sys
+
+use "atomic"
+use "common"
+
+pkg thread =
+ type sem = struct
+ _user : int32
+ _kern : int32
+ ;;
+
+ const mksem : (v : uint32 -> sem)
+ const semwait : (s : sem# -> void)
+ const semtrywait : (s : sem# -> bool)
+ const sempost : (s : sem# -> void)
+;;
+
+const mksem = {v
+ std.assert((v : int32) > 0, "semaphore overflowed")
+ -> [._user = (v : int32), ._kern = 0]
+}
+
+const semwait = {s
+ var u = xadd(&s._user, -1)
+ std.assert(u != ~0, "error: semaphore underflowed\n")
+
+ /* When the userspace value is negative we fall back on the kernel semaphore */
+ if u <= 0
+ while sys.semacquire(&s._kern , 1) < 0
+ /* Interrupted, retry */
+ ;;
+ ;;
+}
+
+const semtrywait = {s
+ for ; ;
+ var u = xget(&s._user)
+ if u <= 0
+ -> false
+ ;;
+ if xcas(&s._user, u, u - 1) == u
+ -> true
+ ;;
+ ;;
+ -> false /* Unreachable */
+}
+
+const sempost = {s
+ var u = xadd(&s._user, 1)
+ std.assert(u != 0x7fffffff, "error: semaphore overflowed\n")
+ if u < 0
+ sys.semrelease(&s._kern, 1)
+ ;;
+}
--- /dev/null
+++ b/lib/thread/sem.myr
@@ -1,0 +1,66 @@
+use std
+
+use "atomic"
+
+pkg thread =
+ type sem = struct
+ _val : uint32
+ ;;
+
+ const mksem : (v : uint32 -> sem)
+ const semwait : (s : sem# -> void)
+ const semtrywait : (s : sem# -> bool)
+ const sempost : (s : sem# -> void)
+;;
+
+const mksem = {v
+ -> [._val = v]
+}
+
+const semwait = {s
+ var v = 0
+
+ for var i = 0; i < 1000; i++
+ if (v = xget(&s._val)) != 0 && xcas(&s._val, v, v - 1) == v
+ -> void
+ ;;
+ ;;
+
+ for var i = 0; i < 1000; i++
+ if (v = xget(&s._val)) != 0 && xcas(&s._val, v, v - 1) == v
+ -> void
+ ;;
+ std.nanosleep(10_000)
+ ;;
+
+ for var i = 0; i < 1000; i++
+ if (v = xget(&s._val)) != 0 && xcas(&s._val, v, v - 1) == v
+ -> void
+ ;;
+ std.nanosleep(100_000)
+ ;;
+
+ for ; ;
+ if (v = xget(&s._val)) != 0 && xcas(&s._val, v, v - 1) == v
+ -> void
+ ;;
+ std.nanosleep(1_000_000)
+ ;;
+}
+
+const semtrywait = {s
+ for ; ;
+ var v = xget(&s._val)
+ if v == 0
+ -> false
+ ;;
+ if xcas(&s._val, v, v - 1) == v
+ -> true
+ ;;
+ ;;
+ -> false /* Unreachable */
+}
+
+const sempost = {s
+ std.assert(xadd(&s._val, 1) != ~0x0, "error: semaphore overflowed\n")
+}
--- a/lib/thread/spawn+openbsd.myr
+++ b/lib/thread/spawn+openbsd.myr
@@ -51,10 +51,11 @@
.tid = &ret,
.stk = (tos : byte#),
]
- if sys.__tfork_thread(&tfp, \
- sizeof(sys.tforkparams), \
- (startthread : void#), \
- (0 : void#)) < 0
+ ret = sys.__tfork_thread(&tfp,
+ sizeof(sys.tforkparams),
+ (startthread : void#),
+ (0 : void#))
+ if ret < 0
-> `std.Err "couldn't spawn thread"
;;
-> `std.Ok (ret : tid)
--- a/lib/thread/spawn+osx.myr
+++ b/lib/thread/spawn+osx.myr
@@ -79,7 +79,6 @@
const getstk = {sz
var p, m
- std.put("allocating stack {x}\n", sz)
p = sys.mmap((0 : byte#), sz, sys.Mprotrw, sys.Mpriv | sys.Manon, -1, 0)
if p == sys.Mapbad
-> p
--- a/lib/thread/test/atomic.myr
+++ b/lib/thread/test/atomic.myr
@@ -16,6 +16,8 @@
/* nothing */
;;
std.assert(val == 2_000_000, "atomics are broken\n")
+
+ testintptr()
}
const incvar = {
@@ -27,3 +29,16 @@
thread.xadd(&done, 1)
}
+const testintptr = {
+ var i = 123
+ var j = 456
+ var p = &i
+
+ std.assert(std.get(thread.xgetptr(&p))# == 123, "xgetptr is broken\n")
+ thread.xsetptr(&p, `std.Some &j)
+ std.assert(p# == 456, "xsetptr is broken\n")
+ std.assert(std.get(thread.xcasptr(&p, `std.Some &j, `std.Some &i)) == &j, "xcasptr is broken\n")
+ std.assert(p# == 123, "xcasptr is broken\n")
+ std.assert(std.get(thread.xchgptr(&p, `std.None)) == &i, "xchgptr is broken\n")
+ std.assert((p : std.intptr) == 0, "xchgptr is broken\n")
+}
--- /dev/null
+++ b/lib/thread/test/sem.myr
@@ -1,0 +1,42 @@
+use std
+use thread
+
+const Cap = 4
+
+var write : uint32 = 0, read : uint32 = 0
+var lock
+var len
+var cap
+var buf : int[Cap]
+var done : uint32 = 0
+
+const main = {
+ lock = thread.mkmtx()
+ len = thread.mksem(0)
+ cap = thread.mksem(Cap)
+
+ thread.spawn({
+ for var i = 0; i < 100000; i++
+ thread.semwait(&cap)
+ thread.mtxlock(&lock)
+ buf[write++ & (Cap - 1)] = i
+ thread.mtxunlock(&lock)
+ thread.sempost(&len)
+ ;;
+ })
+
+ thread.spawn({
+ for var i = 0; i < 100000; i++
+ thread.semwait(&len)
+ thread.mtxlock(&lock)
+ std.assert(i == buf[read++ & (Cap - 1)], "semaphores are broken\n")
+ thread.mtxunlock(&lock)
+ thread.sempost(&cap)
+ ;;
+ thread.xset(&done, 1)
+ })
+
+ while thread.xget(&done) == 0
+ std.nanosleep(1_000_000)
+ ;;
+}
--- a/mbld/libs.myr
+++ b/mbld/libs.myr
@@ -22,7 +22,7 @@
incs : byte[:][:] -> void)
;;
-const Abiversion = 18
+const Abiversion = 19
const builtlib = {b, mt, dep, dyndep
var ldep, l, u
--- a/mbld/parse.myr
+++ b/mbld/parse.myr
@@ -42,7 +42,7 @@
sel = mksyssel(b, "mbld", 0, "mbld")
ok = loadall(b, "bld.proj", "", sel)
- targs = sysselfin(sel)
+ targs = sysselfin(b, sel)
for (name, targ) : targs
std.slpush(&b.all, name)
std.htput(b.targs, name, targ)
@@ -429,9 +429,9 @@
| `std.Some (wl, libs):
libdeps = libs
for w : wl
- sysseladd(fsel, w)
+ sysseladd(b, fsel, w)
;;
- inputs = sysselfin(fsel)
+ inputs = sysselfin(b, fsel)
std.slfree(wl)
| `std.None: failparse(p, "expected list of file names after '{} {}'\n", targ, name)
;;
@@ -761,7 +761,7 @@
var tn
tn = std.fmt("{}:{}", p.fdir, name)
- sysseladdlist(p.targsel, tn, tags, (tn, targ))
+ sysseladdlist(b, p.targsel, tn, tags, (tn, targ))
std.slpush(&p.targs, targ)
}
--- a/mbld/syssel.myr
+++ b/mbld/syssel.myr
@@ -1,4 +1,5 @@
use std
+use bio
use "opts"
use "types"
@@ -8,15 +9,14 @@
file : byte[:]
line : int
targ : byte[:]
- sysattrs : std.htab(byte[:], (int, int, int))#
_match : std.htab(byte[:], (int, int))#
_best : std.htab(byte[:], @a)#
;;
generic mksyssel : (b : build#, f : byte[:], line : int, targ : byte[:] -> syssel(@a)#)
- generic sysseladd : (syssel : syssel(byte[:])#, file : byte[:] -> void)
- generic sysseladdlist : (syssel : syssel(@a)#, base : byte[:], attrs : byte[:][:], val : @a -> void)
- generic sysselfin : (syssel : syssel(@a)# -> @a[:])
+ generic sysseladd : (b : build#, syssel : syssel(byte[:])#, file : byte[:] -> void)
+ generic sysseladdlist : (b : build#, syssel : syssel(@a)#, base : byte[:], attrs : byte[:][:], val : @a -> void)
+ generic sysselfin : (b : build#, syssel : syssel(@a)# -> @a[:])
const addsysattrs : (sa : build#, tags : byte[:][:] -> void)
;;
@@ -29,12 +29,11 @@
.targ = targ,
._match = std.mkht(),
._best = std.mkht(),
- .sysattrs = b.tags
])
-> syssel
}
-generic sysseladd = {syssel, f
+generic sysseladd = {b, syssel, f
var basename, attrs
var attrlist
@@ -55,38 +54,23 @@
;;
attrlist = std.strsplit(attrs, "-")
- sysseladdlist(syssel, basename, attrlist, f)
+ sysseladdlist(b, syssel, basename, attrlist, f)
std.slfree(attrlist)
}
-generic sysseladdlist = {syssel, base, attrs, val
- var nmatch, vscore, n, v, s
+generic sysseladdlist = {b, syssel, base, attrs, val
+ var nmatch, vscore, s
nmatch = 0
vscore = 0
for a : attrs
- match std.strfind(a, ":")
- | `std.Some i:
- n = a[:i]
- v = parseversion(a[i+1:])
- | `std.None:
- n = a
- v = (-1, -1, -1)
- ;;
-
- match std.htget(syssel.sysattrs, n)
- | `std.None:
+ s = tagscore(b, a)
+ if s < 0
nmatch = -1
break
- | `std.Some have:
- s = versionscore(syssel, have, v)
- if s < 0
- nmatch = -1
- break
- ;;
- vscore += s
- nmatch++
;;
+ vscore += s
+ nmatch++
;;
match std.htgetv(syssel._match, base, (-1, -1))
| (curbest, curscore):
@@ -97,7 +81,25 @@
;;
}
-const versionscore = {syssel, have, want
+const tagscore = {b, tag
+ var n, v
+
+ match std.strfind(tag, ":")
+ | `std.Some i:
+ n = tag[:i]
+ v = parseversion(tag[i+1:])
+ | `std.None:
+ n = tag
+ v = (-1, -1, -1)
+ ;;
+
+ match std.htget(b.tags, n)
+ | `std.None: -> -1
+ | `std.Some cv: -> versionscore(cv, v)
+ ;;
+}
+
+const versionscore = {have, want
var s
s = 0
@@ -123,7 +125,7 @@
;;
}
-generic sysselfin = {syssel
+generic sysselfin = {b, syssel
var keys, nmatch, ret
keys = std.htkeys(syssel._match)
@@ -178,7 +180,7 @@
for t : tags
tag(b, t)
;;
- loadtagfile(b, "bld.tag")
+ loadtagfile(b, "bld.tags")
;;
}
@@ -196,20 +198,94 @@
}
const loadtagfile = {b, tagfile
- var data, sp
+ var deptags, tagmap, changed
+ var tf, lnum
if !std.fexists(tagfile)
-> void
;;
- data = std.try(std.slurp(tagfile))
- while true
- sp = std.strtok(data)
- for t : sp
- tag(b, t)
+
+ match bio.open(tagfile, bio.Rd)
+ | `std.Ok f: tf = f
+ | `std.Err e: std.fatal("could not open tagfile: {}\n", e)
+ ;;
+
+ lnum = 0
+ tagmap = std.mkht()
+ /*
+ * Parse the list of tags. Each line is in the form of
+ *
+ * tag list ":" tag list
+ *
+ * The left hand side of the tag list describes the tags
+ * that get added if the tags on the right hand side all
+ * are present.
+ */
+ for ln : bio.byline(tf)
+ lnum++
+ match std.strfind(ln, ":")
+ | `std.None:
+ for t : std.bytok(ln)
+ tag(b, t)
+ ;;
+ continue
+ | `std.Some idx:
+ if std.strstrip(ln[:idx]).len == 0
+ std.fatal("{}:{}: missing tags before ':'\n", tagfile, lnum)
+ ;;
+ deptags = [][:]
+ for d : std.bytok(ln[idx+1:])
+ std.slpush(&deptags, std.sldup(d))
+ ;;
+ for t : std.bytok(ln[:idx])
+ match std.htget(tagmap, t)
+ | `std.Some v:
+ std.slpush(&v, deptags)
+ std.htput(tagmap, t, v)
+ | `std.None:
+ std.htput(tagmap, std.sldup(t), std.sldup([deptags][:]))
+ ;;
+ ;;
;;
- std.slfree(sp)
;;
- std.slfree(data)
+ bio.close(tf)
+
+ /*
+ * Because tags may depend on other tags, we need to iterate
+ * here until the set of tags reach a fixed point. Each tag
+ * that we insert may potentially free other tags to be inserted,
+ * so either we make progress on the finite set of tags, or we
+ * don't make a change and break out of the loop.
+ */
+ changed = true
+ while changed
+ changed = false
+ for (k, vss) : std.byhtkeyvals(tagmap)
+ if std.hthas(b.tags, k)
+ continue
+ ;;
+ for vs : vss
+ for v : vs
+ if tagscore(b, v) == -1
+ goto next
+ ;;
+ ;;
+ tag(b, k)
+ changed = true
+:next
+ ;;
+ ;;
+ ;;
+ for (k, vss) : std.byhtkeyvals(tagmap)
+ std.slfree(k)
+ for vs : vss
+ for v : vs
+ std.slfree(v)
+ ;;
+ std.slfree(vs)
+ ;;
+ std.slfree(vss)
+ ;;
}
const tag = {b, t
@@ -219,7 +295,6 @@
std.htput(b.tags, std.sldup(t), (-1, -1, -1))
| `std.Some idx:
v = parseversion(t[idx+1:])
- std.put("version: {} : {}\n", t[:idx], v)
std.htput(b.tags, std.sldup(t[:idx]), v)
;;
--- a/mbldwrap.sh
+++ b/mbldwrap.sh
@@ -13,12 +13,12 @@
export MYR_RT=`pwd`/rt/_myrrt.o
fi
-if [ -f obj/mbld/mbld ]; then
- MBLD=obj/mbld/mbld
-elif [ -f mbld/mbld ]; then
- MBLD=mbld/mbld
-else
- MBLD=$(command -v mbld)
+if [ -z "$MBLD" ]; then
+ if [ -f obj/mbld/mbld ]; then
+ MBLD=obj/mbld/mbld
+ else
+ MBLD=$(command -v mbld)
+ fi
fi
if [ -z "$MBLD" ]; then
--- a/mi/flatten.c
+++ b/mi/flatten.c
@@ -441,7 +441,7 @@
static Node *
assign(Flattenctx *s, Node *lhs, Node *rhs)
{
- Node *r, *t, *u;
+ Node *r, *t, *e, *u;
if (exprop(lhs) == Otup) {
r = destructure(s, lhs, rhs);
@@ -448,7 +448,9 @@
} else if (tybase(exprtype(lhs))->type != Tyvoid) {
t = lval(s, lhs);
u = rval(s, rhs);
- r = asn(t, u);
+ e = asn(t, u);
+ append(s, e);
+ r = t;
} else {
r = rval(s, rhs);
}
--- a/mk/bootstrap/bootstrap+Darwin-x86_64.sh
+++ b/mk/bootstrap/bootstrap+Darwin-x86_64.sh
@@ -28,6 +28,7 @@
ar -rcs lib/sys/libsys.a lib/sys/sys.o lib/sys/syserrno.o lib/sys/util.o lib/sys/systypes.o lib/sys/ifreq.o lib/sys/syscall.o
$pwd/muse/muse -o lib/sys/libsys.use -p sys lib/sys/sys.use lib/sys/syserrno.use lib/sys/systypes.use lib/sys/ifreq.use
$pwd/6/6m -I lib/sys lib/std/errno.myr
+ $pwd/6/6m -I lib/sys lib/std/pledge.myr
$pwd/6/6m -I lib/sys lib/std/types.myr
$pwd/6/6m -I lib/sys lib/std/strfind.myr
$pwd/6/6m -I lib/sys lib/std/memops.myr
@@ -105,8 +106,8 @@
$pwd/6/6m -I lib/sys lib/std/dial+posixy.myr
$pwd/6/6m -I lib/sys lib/std/listen+posixy.myr
$pwd/6/6m -I lib/sys lib/std/try.myr
- ar -rcs lib/std/libstd.a lib/std/resolve.o lib/std/result.o lib/std/try.o lib/std/ipparse.o lib/std/alloc.o lib/std/sleq.o lib/std/putint.o lib/std/sljoin.o lib/std/slpop.o lib/std/syswrap.o lib/std/getint.o lib/std/strsplit.o lib/std/slfill.o lib/std/writeall.o lib/std/fltfmt.o lib/std/hasprefix.o lib/std/swap.o lib/std/fmt.o lib/std/netaddr.o lib/std/varargs.o lib/std/diriter.o lib/std/getcwd.o lib/std/blat.o lib/std/optparse.o lib/std/pathjoin.o lib/std/readall.o lib/std/strjoin.o lib/std/threadhooks.o lib/std/sjlj.o lib/std/extremum.o lib/std/endian.o lib/std/rand.o lib/std/sldup.o lib/std/sleep.o lib/std/wait.o lib/std/introspect.o lib/std/fltparse.o lib/std/fndup.o lib/std/strbuf.o lib/std/strreplace.o lib/std/assert.o lib/std/spork.o lib/std/slpush.o lib/std/strstrip.o lib/std/htab.o lib/std/hashfuncs.o lib/std/slput.o lib/std/sjlj-impl.o lib/std/fltbits.o lib/std/striter.o lib/std/types.o lib/std/cstrconv.o lib/std/units.o lib/std/backtrace.o lib/std/syswrap-ss.o lib/std/die.o lib/std/mk.o lib/std/hassuffix.o lib/std/memops-impl.o lib/std/utf.o lib/std/slurp.o lib/std/dialparse.o lib/std/bytealloc.o lib/std/mktemp.o lib/std/consts.o lib/std/chomp.o lib/std/dir.o lib/std/search.o lib/std/memops.o lib/std/fmtfuncs.o lib/std/strfind.o lib/std/env.o lib/std/dirname.o lib/std/clear.o lib/std/listen.o lib/std/sort.o lib/std/cmp.o lib/std/now.o lib/std/intparse.o lib/std/traits.o lib/std/mkpath.o lib/std/option.o lib/std/dial.o lib/std/errno.o lib/std/chartype.o lib/std/bigint.o lib/std/bitset.o lib/std/getbp.o lib/std/slcp.o lib/std/execvp.o
- $pwd/muse/muse -o lib/std/libstd.use -p std lib/std/resolve.use lib/std/result.use lib/std/try.use lib/std/ipparse.use lib/std/alloc.use lib/std/sleq.use lib/std/putint.use lib/std/sljoin.use lib/std/slpop.use lib/std/syswrap.use lib/std/getint.use lib/std/strsplit.use lib/std/slfill.use lib/std/writeall.use lib/std/fltfmt.use lib/std/hasprefix.use lib/std/swap.use lib/std/fmt.use lib/std/netaddr.use lib/std/varargs.use lib/std/diriter.use lib/std/getcwd.use lib/std/blat.use lib/std/optparse.use lib/std/pathjoin.use lib/std/readall.use lib/std/strjoin.use lib/std/threadhooks.use lib/std/sjlj.use lib/std/extremum.use lib/std/endian.use lib/std/rand.use lib/std/sldup.use lib/std/sleep.use lib/std/wait.use lib/std/introspect.use lib/std/fltparse.use lib/std/fndup.use lib/std/strbuf.use lib/std/strreplace.use lib/std/assert.use lib/std/spork.use lib/std/slpush.use lib/std/strstrip.use lib/std/htab.use lib/std/hashfuncs.use lib/std/slput.use lib/std/fltbits.use lib/std/striter.use lib/std/types.use lib/std/cstrconv.use lib/std/units.use lib/std/backtrace.use lib/std/syswrap-ss.use lib/std/die.use lib/std/mk.use lib/std/hassuffix.use lib/std/utf.use lib/std/slurp.use lib/std/dialparse.use lib/std/bytealloc.use lib/std/mktemp.use lib/std/consts.use lib/std/chomp.use lib/std/dir.use lib/std/search.use lib/std/memops.use lib/std/fmtfuncs.use lib/std/strfind.use lib/std/env.use lib/std/dirname.use lib/std/clear.use lib/std/listen.use lib/std/sort.use lib/std/cmp.use lib/std/now.use lib/std/intparse.use lib/std/traits.use lib/std/mkpath.use lib/std/option.use lib/std/dial.use lib/std/errno.use lib/std/chartype.use lib/std/bigint.use lib/std/bitset.use lib/std/slcp.use lib/std/execvp.use
+ ar -rcs lib/std/libstd.a lib/std/resolve.o lib/std/result.o lib/std/try.o lib/std/ipparse.o lib/std/alloc.o lib/std/sleq.o lib/std/putint.o lib/std/sljoin.o lib/std/slpop.o lib/std/syswrap.o lib/std/getint.o lib/std/strsplit.o lib/std/slfill.o lib/std/writeall.o lib/std/fltfmt.o lib/std/hasprefix.o lib/std/swap.o lib/std/fmt.o lib/std/netaddr.o lib/std/varargs.o lib/std/diriter.o lib/std/getcwd.o lib/std/blat.o lib/std/optparse.o lib/std/pathjoin.o lib/std/readall.o lib/std/strjoin.o lib/std/threadhooks.o lib/std/sjlj.o lib/std/extremum.o lib/std/endian.o lib/std/rand.o lib/std/sldup.o lib/std/sleep.o lib/std/wait.o lib/std/introspect.o lib/std/fltparse.o lib/std/fndup.o lib/std/strbuf.o lib/std/strreplace.o lib/std/assert.o lib/std/spork.o lib/std/slpush.o lib/std/strstrip.o lib/std/htab.o lib/std/hashfuncs.o lib/std/slput.o lib/std/sjlj-impl.o lib/std/fltbits.o lib/std/striter.o lib/std/types.o lib/std/cstrconv.o lib/std/units.o lib/std/backtrace.o lib/std/syswrap-ss.o lib/std/die.o lib/std/mk.o lib/std/hassuffix.o lib/std/memops-impl.o lib/std/pledge.o lib/std/utf.o lib/std/slurp.o lib/std/dialparse.o lib/std/bytealloc.o lib/std/mktemp.o lib/std/consts.o lib/std/chomp.o lib/std/dir.o lib/std/search.o lib/std/memops.o lib/std/fmtfuncs.o lib/std/strfind.o lib/std/env.o lib/std/dirname.o lib/std/clear.o lib/std/listen.o lib/std/sort.o lib/std/cmp.o lib/std/now.o lib/std/intparse.o lib/std/traits.o lib/std/mkpath.o lib/std/option.o lib/std/dial.o lib/std/errno.o lib/std/chartype.o lib/std/bigint.o lib/std/bitset.o lib/std/getbp.o lib/std/slcp.o lib/std/execvp.o
+ $pwd/muse/muse -o lib/std/libstd.use -p std lib/std/resolve.use lib/std/result.use lib/std/try.use lib/std/ipparse.use lib/std/alloc.use lib/std/sleq.use lib/std/putint.use lib/std/sljoin.use lib/std/slpop.use lib/std/syswrap.use lib/std/getint.use lib/std/strsplit.use lib/std/slfill.use lib/std/writeall.use lib/std/fltfmt.use lib/std/hasprefix.use lib/std/swap.use lib/std/fmt.use lib/std/netaddr.use lib/std/varargs.use lib/std/diriter.use lib/std/getcwd.use lib/std/blat.use lib/std/optparse.use lib/std/pathjoin.use lib/std/readall.use lib/std/strjoin.use lib/std/threadhooks.use lib/std/sjlj.use lib/std/extremum.use lib/std/endian.use lib/std/rand.use lib/std/sldup.use lib/std/sleep.use lib/std/wait.use lib/std/introspect.use lib/std/fltparse.use lib/std/fndup.use lib/std/strbuf.use lib/std/strreplace.use lib/std/assert.use lib/std/spork.use lib/std/slpush.use lib/std/strstrip.use lib/std/htab.use lib/std/hashfuncs.use lib/std/slput.use lib/std/fltbits.use lib/std/striter.use lib/std/types.use lib/std/cstrconv.use lib/std/units.use lib/std/backtrace.use lib/std/syswrap-ss.use lib/std/die.use lib/std/mk.use lib/std/hassuffix.use lib/std/pledge.use lib/std/utf.use lib/std/slurp.use lib/std/dialparse.use lib/std/bytealloc.use lib/std/mktemp.use lib/std/consts.use lib/std/chomp.use lib/std/dir.use lib/std/search.use lib/std/memops.use lib/std/fmtfuncs.use lib/std/strfind.use lib/std/env.use lib/std/dirname.use lib/std/clear.use lib/std/listen.use lib/std/sort.use lib/std/cmp.use lib/std/now.use lib/std/intparse.use lib/std/traits.use lib/std/mkpath.use lib/std/option.use lib/std/dial.use lib/std/errno.use lib/std/chartype.use lib/std/bigint.use lib/std/bitset.use lib/std/slcp.use lib/std/execvp.use
$pwd/6/6m -I lib/sys -I lib/std -I lib/bio -I lib/regex -I lib/thread mbld/types.myr
$pwd/6/6m -I lib/sys -I lib/std lib/regex/types.myr
$pwd/6/6m -I lib/sys -I lib/std lib/regex/interp.myr
@@ -123,10 +124,12 @@
$pwd/6/6m -I lib/sys -I lib/std lib/thread/ncpu.myr
$pwd/6/6m -I lib/sys -I lib/std lib/thread/common.myr
$pwd/6/6m -I lib/sys -I lib/std lib/thread/atomic.myr
+ $pwd/6/6m -I lib/sys -I lib/std lib/thread/futex+osx.myr
+ $pwd/6/6m -I lib/sys -I lib/std lib/thread/sem.myr
$pwd/6/6m -I lib/sys -I lib/std lib/thread/mutex.myr
$pwd/6/6m -I lib/sys -I lib/std lib/thread/hookstd.myr
- ar -rcs lib/thread/libthread.a lib/thread/mutex.o lib/thread/atomic.o lib/thread/atomic-impl.o lib/thread/hookstd.o lib/thread/common.o lib/thread/ncpu.o lib/thread/start.o lib/thread/spawn.o
- $pwd/muse/muse -o lib/thread/libthread.use -p thread lib/thread/mutex.use lib/thread/atomic.use lib/thread/hookstd.use lib/thread/common.use lib/thread/ncpu.use lib/thread/spawn.use
+ ar -rcs lib/thread/libthread.a lib/thread/mutex.o lib/thread/atomic.o lib/thread/atomic-impl.o lib/thread/hookstd.o lib/thread/sem.o lib/thread/common.o lib/thread/ncpu.o lib/thread/start.o lib/thread/futex.o lib/thread/spawn.o
+ $pwd/muse/muse -o lib/thread/libthread.use -p thread lib/thread/mutex.use lib/thread/atomic.use lib/thread/hookstd.use lib/thread/sem.use lib/thread/common.use lib/thread/ncpu.use lib/thread/futex.use lib/thread/spawn.use
$pwd/6/6m -I lib/sys -I lib/std -I lib/bio -I lib/regex -I lib/thread mbld/opts.myr
$pwd/6/6m -I lib/sys -I lib/std -I lib/bio -I lib/regex -I lib/thread mbld/syssel.myr
$pwd/6/6m -I lib/sys -I lib/std -I lib/bio -I lib/regex -I lib/thread mbld/libs.myr
--- a/mk/bootstrap/bootstrap+FreeBSD-amd64.sh
+++ b/mk/bootstrap/bootstrap+FreeBSD-amd64.sh
@@ -28,6 +28,7 @@
ar -rcs lib/sys/libsys.a lib/sys/sys.o lib/sys/syserrno.o lib/sys/util.o lib/sys/systypes.o lib/sys/ifreq.o lib/sys/syscall.o
$pwd/muse/muse -o lib/sys/libsys.use -p sys lib/sys/sys.use lib/sys/syserrno.use lib/sys/systypes.use lib/sys/ifreq.use
$pwd/6/6m -I lib/sys lib/std/errno.myr
+ $pwd/6/6m -I lib/sys lib/std/pledge.myr
$pwd/6/6m -I lib/sys lib/std/types.myr
$pwd/6/6m -I lib/sys lib/std/strfind.myr
$pwd/6/6m -I lib/sys lib/std/memops.myr
@@ -105,8 +106,8 @@
$pwd/6/6m -I lib/sys lib/std/dial+posixy.myr
$pwd/6/6m -I lib/sys lib/std/listen+posixy.myr
$pwd/6/6m -I lib/sys lib/std/try.myr
- ar -rcs lib/std/libstd.a lib/std/resolve.o lib/std/result.o lib/std/try.o lib/std/ipparse.o lib/std/alloc.o lib/std/sleq.o lib/std/putint.o lib/std/sljoin.o lib/std/slpop.o lib/std/syswrap.o lib/std/getint.o lib/std/strsplit.o lib/std/slfill.o lib/std/writeall.o lib/std/fltfmt.o lib/std/hasprefix.o lib/std/swap.o lib/std/fmt.o lib/std/netaddr.o lib/std/varargs.o lib/std/diriter.o lib/std/getcwd.o lib/std/blat.o lib/std/optparse.o lib/std/pathjoin.o lib/std/readall.o lib/std/strjoin.o lib/std/threadhooks.o lib/std/sjlj.o lib/std/extremum.o lib/std/endian.o lib/std/rand.o lib/std/sldup.o lib/std/sleep.o lib/std/wait.o lib/std/introspect.o lib/std/fltparse.o lib/std/fndup.o lib/std/strbuf.o lib/std/strreplace.o lib/std/assert.o lib/std/spork.o lib/std/slpush.o lib/std/strstrip.o lib/std/htab.o lib/std/hashfuncs.o lib/std/slput.o lib/std/sjlj-impl.o lib/std/fltbits.o lib/std/striter.o lib/std/types.o lib/std/cstrconv.o lib/std/units.o lib/std/backtrace.o lib/std/syswrap-ss.o lib/std/die.o lib/std/mk.o lib/std/hassuffix.o lib/std/memops-impl.o lib/std/utf.o lib/std/slurp.o lib/std/dialparse.o lib/std/bytealloc.o lib/std/mktemp.o lib/std/consts.o lib/std/chomp.o lib/std/dir.o lib/std/search.o lib/std/memops.o lib/std/fmtfuncs.o lib/std/strfind.o lib/std/env.o lib/std/dirname.o lib/std/clear.o lib/std/listen.o lib/std/sort.o lib/std/cmp.o lib/std/now.o lib/std/intparse.o lib/std/traits.o lib/std/mkpath.o lib/std/option.o lib/std/dial.o lib/std/errno.o lib/std/chartype.o lib/std/bigint.o lib/std/bitset.o lib/std/getbp.o lib/std/slcp.o lib/std/execvp.o
- $pwd/muse/muse -o lib/std/libstd.use -p std lib/std/resolve.use lib/std/result.use lib/std/try.use lib/std/ipparse.use lib/std/alloc.use lib/std/sleq.use lib/std/putint.use lib/std/sljoin.use lib/std/slpop.use lib/std/syswrap.use lib/std/getint.use lib/std/strsplit.use lib/std/slfill.use lib/std/writeall.use lib/std/fltfmt.use lib/std/hasprefix.use lib/std/swap.use lib/std/fmt.use lib/std/netaddr.use lib/std/varargs.use lib/std/diriter.use lib/std/getcwd.use lib/std/blat.use lib/std/optparse.use lib/std/pathjoin.use lib/std/readall.use lib/std/strjoin.use lib/std/threadhooks.use lib/std/sjlj.use lib/std/extremum.use lib/std/endian.use lib/std/rand.use lib/std/sldup.use lib/std/sleep.use lib/std/wait.use lib/std/introspect.use lib/std/fltparse.use lib/std/fndup.use lib/std/strbuf.use lib/std/strreplace.use lib/std/assert.use lib/std/spork.use lib/std/slpush.use lib/std/strstrip.use lib/std/htab.use lib/std/hashfuncs.use lib/std/slput.use lib/std/fltbits.use lib/std/striter.use lib/std/types.use lib/std/cstrconv.use lib/std/units.use lib/std/backtrace.use lib/std/syswrap-ss.use lib/std/die.use lib/std/mk.use lib/std/hassuffix.use lib/std/utf.use lib/std/slurp.use lib/std/dialparse.use lib/std/bytealloc.use lib/std/mktemp.use lib/std/consts.use lib/std/chomp.use lib/std/dir.use lib/std/search.use lib/std/memops.use lib/std/fmtfuncs.use lib/std/strfind.use lib/std/env.use lib/std/dirname.use lib/std/clear.use lib/std/listen.use lib/std/sort.use lib/std/cmp.use lib/std/now.use lib/std/intparse.use lib/std/traits.use lib/std/mkpath.use lib/std/option.use lib/std/dial.use lib/std/errno.use lib/std/chartype.use lib/std/bigint.use lib/std/bitset.use lib/std/slcp.use lib/std/execvp.use
+ ar -rcs lib/std/libstd.a lib/std/resolve.o lib/std/result.o lib/std/try.o lib/std/ipparse.o lib/std/alloc.o lib/std/sleq.o lib/std/putint.o lib/std/sljoin.o lib/std/slpop.o lib/std/syswrap.o lib/std/getint.o lib/std/strsplit.o lib/std/slfill.o lib/std/writeall.o lib/std/fltfmt.o lib/std/hasprefix.o lib/std/swap.o lib/std/fmt.o lib/std/netaddr.o lib/std/varargs.o lib/std/diriter.o lib/std/getcwd.o lib/std/blat.o lib/std/optparse.o lib/std/pathjoin.o lib/std/readall.o lib/std/strjoin.o lib/std/threadhooks.o lib/std/sjlj.o lib/std/extremum.o lib/std/endian.o lib/std/rand.o lib/std/sldup.o lib/std/sleep.o lib/std/wait.o lib/std/introspect.o lib/std/fltparse.o lib/std/fndup.o lib/std/strbuf.o lib/std/strreplace.o lib/std/assert.o lib/std/spork.o lib/std/slpush.o lib/std/strstrip.o lib/std/htab.o lib/std/hashfuncs.o lib/std/slput.o lib/std/sjlj-impl.o lib/std/fltbits.o lib/std/striter.o lib/std/types.o lib/std/cstrconv.o lib/std/units.o lib/std/backtrace.o lib/std/syswrap-ss.o lib/std/die.o lib/std/mk.o lib/std/hassuffix.o lib/std/memops-impl.o lib/std/pledge.o lib/std/utf.o lib/std/slurp.o lib/std/dialparse.o lib/std/bytealloc.o lib/std/mktemp.o lib/std/consts.o lib/std/chomp.o lib/std/dir.o lib/std/search.o lib/std/memops.o lib/std/fmtfuncs.o lib/std/strfind.o lib/std/env.o lib/std/dirname.o lib/std/clear.o lib/std/listen.o lib/std/sort.o lib/std/cmp.o lib/std/now.o lib/std/intparse.o lib/std/traits.o lib/std/mkpath.o lib/std/option.o lib/std/dial.o lib/std/errno.o lib/std/chartype.o lib/std/bigint.o lib/std/bitset.o lib/std/getbp.o lib/std/slcp.o lib/std/execvp.o
+ $pwd/muse/muse -o lib/std/libstd.use -p std lib/std/resolve.use lib/std/result.use lib/std/try.use lib/std/ipparse.use lib/std/alloc.use lib/std/sleq.use lib/std/putint.use lib/std/sljoin.use lib/std/slpop.use lib/std/syswrap.use lib/std/getint.use lib/std/strsplit.use lib/std/slfill.use lib/std/writeall.use lib/std/fltfmt.use lib/std/hasprefix.use lib/std/swap.use lib/std/fmt.use lib/std/netaddr.use lib/std/varargs.use lib/std/diriter.use lib/std/getcwd.use lib/std/blat.use lib/std/optparse.use lib/std/pathjoin.use lib/std/readall.use lib/std/strjoin.use lib/std/threadhooks.use lib/std/sjlj.use lib/std/extremum.use lib/std/endian.use lib/std/rand.use lib/std/sldup.use lib/std/sleep.use lib/std/wait.use lib/std/introspect.use lib/std/fltparse.use lib/std/fndup.use lib/std/strbuf.use lib/std/strreplace.use lib/std/assert.use lib/std/spork.use lib/std/slpush.use lib/std/strstrip.use lib/std/htab.use lib/std/hashfuncs.use lib/std/slput.use lib/std/fltbits.use lib/std/striter.use lib/std/types.use lib/std/cstrconv.use lib/std/units.use lib/std/backtrace.use lib/std/syswrap-ss.use lib/std/die.use lib/std/mk.use lib/std/hassuffix.use lib/std/pledge.use lib/std/utf.use lib/std/slurp.use lib/std/dialparse.use lib/std/bytealloc.use lib/std/mktemp.use lib/std/consts.use lib/std/chomp.use lib/std/dir.use lib/std/search.use lib/std/memops.use lib/std/fmtfuncs.use lib/std/strfind.use lib/std/env.use lib/std/dirname.use lib/std/clear.use lib/std/listen.use lib/std/sort.use lib/std/cmp.use lib/std/now.use lib/std/intparse.use lib/std/traits.use lib/std/mkpath.use lib/std/option.use lib/std/dial.use lib/std/errno.use lib/std/chartype.use lib/std/bigint.use lib/std/bitset.use lib/std/slcp.use lib/std/execvp.use
$pwd/6/6m -I lib/sys -I lib/std -I lib/bio -I lib/regex -I lib/thread mbld/types.myr
$pwd/6/6m -I lib/sys -I lib/std lib/regex/types.myr
$pwd/6/6m -I lib/sys -I lib/std lib/regex/interp.myr
@@ -123,10 +124,12 @@
$pwd/6/6m -I lib/sys -I lib/std lib/thread/ncpu+freebsd.myr
$pwd/6/6m -I lib/sys -I lib/std lib/thread/common.myr
$pwd/6/6m -I lib/sys -I lib/std lib/thread/atomic.myr
- $pwd/6/6m -I lib/sys -I lib/std lib/thread/mutex+freebsd.myr
+ $pwd/6/6m -I lib/sys -I lib/std lib/thread/futex+freebsd.myr
+ $pwd/6/6m -I lib/sys -I lib/std lib/thread/sem.myr
+ $pwd/6/6m -I lib/sys -I lib/std lib/thread/mutex.myr
$pwd/6/6m -I lib/sys -I lib/std lib/thread/hookstd.myr
- ar -rcs lib/thread/libthread.a lib/thread/mutex.o lib/thread/atomic.o lib/thread/atomic-impl.o lib/thread/hookstd.o lib/thread/common.o lib/thread/ncpu.o lib/thread/exit.o lib/thread/spawn.o
- $pwd/muse/muse -o lib/thread/libthread.use -p thread lib/thread/mutex.use lib/thread/atomic.use lib/thread/hookstd.use lib/thread/common.use lib/thread/ncpu.use lib/thread/spawn.use
+ ar -rcs lib/thread/libthread.a lib/thread/mutex.o lib/thread/atomic.o lib/thread/atomic-impl.o lib/thread/hookstd.o lib/thread/sem.o lib/thread/common.o lib/thread/ncpu.o lib/thread/exit.o lib/thread/futex.o lib/thread/spawn.o
+ $pwd/muse/muse -o lib/thread/libthread.use -p thread lib/thread/mutex.use lib/thread/atomic.use lib/thread/hookstd.use lib/thread/sem.use lib/thread/common.use lib/thread/ncpu.use lib/thread/futex.use lib/thread/spawn.use
$pwd/6/6m -I lib/sys -I lib/std -I lib/bio -I lib/regex -I lib/thread mbld/opts.myr
$pwd/6/6m -I lib/sys -I lib/std -I lib/bio -I lib/regex -I lib/thread mbld/syssel.myr
$pwd/6/6m -I lib/sys -I lib/std -I lib/bio -I lib/regex -I lib/thread mbld/libs.myr
--- a/mk/bootstrap/bootstrap+Linux-x86_64.sh
+++ b/mk/bootstrap/bootstrap+Linux-x86_64.sh
@@ -28,6 +28,7 @@
ar -rcs lib/sys/libsys.a lib/sys/sys.o lib/sys/syserrno.o lib/sys/util.o lib/sys/systypes.o lib/sys/ifreq.o lib/sys/syscall.o
$pwd/muse/muse -o lib/sys/libsys.use -p sys lib/sys/sys.use lib/sys/syserrno.use lib/sys/systypes.use lib/sys/ifreq.use
$pwd/6/6m -I lib/sys lib/std/errno.myr
+ $pwd/6/6m -I lib/sys lib/std/pledge.myr
$pwd/6/6m -I lib/sys lib/std/types.myr
$pwd/6/6m -I lib/sys lib/std/strfind.myr
$pwd/6/6m -I lib/sys lib/std/memops.myr
@@ -105,8 +106,8 @@
$pwd/6/6m -I lib/sys lib/std/dial+posixy.myr
$pwd/6/6m -I lib/sys lib/std/listen+posixy.myr
$pwd/6/6m -I lib/sys lib/std/try.myr
- ar -rcs lib/std/libstd.a lib/std/resolve.o lib/std/result.o lib/std/try.o lib/std/ipparse.o lib/std/alloc.o lib/std/sleq.o lib/std/putint.o lib/std/sljoin.o lib/std/slpop.o lib/std/syswrap.o lib/std/getint.o lib/std/strsplit.o lib/std/slfill.o lib/std/writeall.o lib/std/fltfmt.o lib/std/hasprefix.o lib/std/swap.o lib/std/fmt.o lib/std/netaddr.o lib/std/varargs.o lib/std/diriter.o lib/std/getcwd.o lib/std/blat.o lib/std/optparse.o lib/std/pathjoin.o lib/std/readall.o lib/std/strjoin.o lib/std/threadhooks.o lib/std/sjlj.o lib/std/extremum.o lib/std/endian.o lib/std/rand.o lib/std/sldup.o lib/std/sleep.o lib/std/wait.o lib/std/introspect.o lib/std/fltparse.o lib/std/fndup.o lib/std/strbuf.o lib/std/strreplace.o lib/std/assert.o lib/std/spork.o lib/std/slpush.o lib/std/strstrip.o lib/std/htab.o lib/std/hashfuncs.o lib/std/slput.o lib/std/sjlj-impl.o lib/std/fltbits.o lib/std/striter.o lib/std/types.o lib/std/cstrconv.o lib/std/units.o lib/std/backtrace.o lib/std/syswrap-ss.o lib/std/die.o lib/std/mk.o lib/std/hassuffix.o lib/std/memops-impl.o lib/std/utf.o lib/std/slurp.o lib/std/dialparse.o lib/std/bytealloc.o lib/std/mktemp.o lib/std/consts.o lib/std/chomp.o lib/std/dir.o lib/std/search.o lib/std/memops.o lib/std/fmtfuncs.o lib/std/strfind.o lib/std/env.o lib/std/dirname.o lib/std/clear.o lib/std/listen.o lib/std/sort.o lib/std/cmp.o lib/std/now.o lib/std/intparse.o lib/std/traits.o lib/std/mkpath.o lib/std/option.o lib/std/dial.o lib/std/errno.o lib/std/chartype.o lib/std/bigint.o lib/std/bitset.o lib/std/getbp.o lib/std/slcp.o lib/std/execvp.o
- $pwd/muse/muse -o lib/std/libstd.use -p std lib/std/resolve.use lib/std/result.use lib/std/try.use lib/std/ipparse.use lib/std/alloc.use lib/std/sleq.use lib/std/putint.use lib/std/sljoin.use lib/std/slpop.use lib/std/syswrap.use lib/std/getint.use lib/std/strsplit.use lib/std/slfill.use lib/std/writeall.use lib/std/fltfmt.use lib/std/hasprefix.use lib/std/swap.use lib/std/fmt.use lib/std/netaddr.use lib/std/varargs.use lib/std/diriter.use lib/std/getcwd.use lib/std/blat.use lib/std/optparse.use lib/std/pathjoin.use lib/std/readall.use lib/std/strjoin.use lib/std/threadhooks.use lib/std/sjlj.use lib/std/extremum.use lib/std/endian.use lib/std/rand.use lib/std/sldup.use lib/std/sleep.use lib/std/wait.use lib/std/introspect.use lib/std/fltparse.use lib/std/fndup.use lib/std/strbuf.use lib/std/strreplace.use lib/std/assert.use lib/std/spork.use lib/std/slpush.use lib/std/strstrip.use lib/std/htab.use lib/std/hashfuncs.use lib/std/slput.use lib/std/fltbits.use lib/std/striter.use lib/std/types.use lib/std/cstrconv.use lib/std/units.use lib/std/backtrace.use lib/std/syswrap-ss.use lib/std/die.use lib/std/mk.use lib/std/hassuffix.use lib/std/utf.use lib/std/slurp.use lib/std/dialparse.use lib/std/bytealloc.use lib/std/mktemp.use lib/std/consts.use lib/std/chomp.use lib/std/dir.use lib/std/search.use lib/std/memops.use lib/std/fmtfuncs.use lib/std/strfind.use lib/std/env.use lib/std/dirname.use lib/std/clear.use lib/std/listen.use lib/std/sort.use lib/std/cmp.use lib/std/now.use lib/std/intparse.use lib/std/traits.use lib/std/mkpath.use lib/std/option.use lib/std/dial.use lib/std/errno.use lib/std/chartype.use lib/std/bigint.use lib/std/bitset.use lib/std/slcp.use lib/std/execvp.use
+ ar -rcs lib/std/libstd.a lib/std/resolve.o lib/std/result.o lib/std/try.o lib/std/ipparse.o lib/std/alloc.o lib/std/sleq.o lib/std/putint.o lib/std/sljoin.o lib/std/slpop.o lib/std/syswrap.o lib/std/getint.o lib/std/strsplit.o lib/std/slfill.o lib/std/writeall.o lib/std/fltfmt.o lib/std/hasprefix.o lib/std/swap.o lib/std/fmt.o lib/std/netaddr.o lib/std/varargs.o lib/std/diriter.o lib/std/getcwd.o lib/std/blat.o lib/std/optparse.o lib/std/pathjoin.o lib/std/readall.o lib/std/strjoin.o lib/std/threadhooks.o lib/std/sjlj.o lib/std/extremum.o lib/std/endian.o lib/std/rand.o lib/std/sldup.o lib/std/sleep.o lib/std/wait.o lib/std/introspect.o lib/std/fltparse.o lib/std/fndup.o lib/std/strbuf.o lib/std/strreplace.o lib/std/assert.o lib/std/spork.o lib/std/slpush.o lib/std/strstrip.o lib/std/htab.o lib/std/hashfuncs.o lib/std/slput.o lib/std/sjlj-impl.o lib/std/fltbits.o lib/std/striter.o lib/std/types.o lib/std/cstrconv.o lib/std/units.o lib/std/backtrace.o lib/std/syswrap-ss.o lib/std/die.o lib/std/mk.o lib/std/hassuffix.o lib/std/memops-impl.o lib/std/pledge.o lib/std/utf.o lib/std/slurp.o lib/std/dialparse.o lib/std/bytealloc.o lib/std/mktemp.o lib/std/consts.o lib/std/chomp.o lib/std/dir.o lib/std/search.o lib/std/memops.o lib/std/fmtfuncs.o lib/std/strfind.o lib/std/env.o lib/std/dirname.o lib/std/clear.o lib/std/listen.o lib/std/sort.o lib/std/cmp.o lib/std/now.o lib/std/intparse.o lib/std/traits.o lib/std/mkpath.o lib/std/option.o lib/std/dial.o lib/std/errno.o lib/std/chartype.o lib/std/bigint.o lib/std/bitset.o lib/std/getbp.o lib/std/slcp.o lib/std/execvp.o
+ $pwd/muse/muse -o lib/std/libstd.use -p std lib/std/resolve.use lib/std/result.use lib/std/try.use lib/std/ipparse.use lib/std/alloc.use lib/std/sleq.use lib/std/putint.use lib/std/sljoin.use lib/std/slpop.use lib/std/syswrap.use lib/std/getint.use lib/std/strsplit.use lib/std/slfill.use lib/std/writeall.use lib/std/fltfmt.use lib/std/hasprefix.use lib/std/swap.use lib/std/fmt.use lib/std/netaddr.use lib/std/varargs.use lib/std/diriter.use lib/std/getcwd.use lib/std/blat.use lib/std/optparse.use lib/std/pathjoin.use lib/std/readall.use lib/std/strjoin.use lib/std/threadhooks.use lib/std/sjlj.use lib/std/extremum.use lib/std/endian.use lib/std/rand.use lib/std/sldup.use lib/std/sleep.use lib/std/wait.use lib/std/introspect.use lib/std/fltparse.use lib/std/fndup.use lib/std/strbuf.use lib/std/strreplace.use lib/std/assert.use lib/std/spork.use lib/std/slpush.use lib/std/strstrip.use lib/std/htab.use lib/std/hashfuncs.use lib/std/slput.use lib/std/fltbits.use lib/std/striter.use lib/std/types.use lib/std/cstrconv.use lib/std/units.use lib/std/backtrace.use lib/std/syswrap-ss.use lib/std/die.use lib/std/mk.use lib/std/hassuffix.use lib/std/pledge.use lib/std/utf.use lib/std/slurp.use lib/std/dialparse.use lib/std/bytealloc.use lib/std/mktemp.use lib/std/consts.use lib/std/chomp.use lib/std/dir.use lib/std/search.use lib/std/memops.use lib/std/fmtfuncs.use lib/std/strfind.use lib/std/env.use lib/std/dirname.use lib/std/clear.use lib/std/listen.use lib/std/sort.use lib/std/cmp.use lib/std/now.use lib/std/intparse.use lib/std/traits.use lib/std/mkpath.use lib/std/option.use lib/std/dial.use lib/std/errno.use lib/std/chartype.use lib/std/bigint.use lib/std/bitset.use lib/std/slcp.use lib/std/execvp.use
$pwd/6/6m -I lib/sys -I lib/std -I lib/bio -I lib/regex -I lib/thread mbld/types.myr
$pwd/6/6m -I lib/sys -I lib/std lib/regex/types.myr
$pwd/6/6m -I lib/sys -I lib/std lib/regex/interp.myr
@@ -123,10 +124,12 @@
$pwd/6/6m -I lib/sys -I lib/std lib/thread/ncpu+linux.myr
$pwd/6/6m -I lib/sys -I lib/std lib/thread/common.myr
$pwd/6/6m -I lib/sys -I lib/std lib/thread/atomic.myr
- $pwd/6/6m -I lib/sys -I lib/std lib/thread/mutex+linux.myr
+ $pwd/6/6m -I lib/sys -I lib/std lib/thread/futex+linux.myr
+ $pwd/6/6m -I lib/sys -I lib/std lib/thread/sem.myr
+ $pwd/6/6m -I lib/sys -I lib/std lib/thread/mutex.myr
$pwd/6/6m -I lib/sys -I lib/std lib/thread/hookstd.myr
- ar -rcs lib/thread/libthread.a lib/thread/mutex.o lib/thread/atomic.o lib/thread/atomic-impl.o lib/thread/hookstd.o lib/thread/common.o lib/thread/ncpu.o lib/thread/exit.o lib/thread/spawn.o
- $pwd/muse/muse -o lib/thread/libthread.use -p thread lib/thread/mutex.use lib/thread/atomic.use lib/thread/hookstd.use lib/thread/common.use lib/thread/ncpu.use lib/thread/spawn.use
+ ar -rcs lib/thread/libthread.a lib/thread/mutex.o lib/thread/atomic.o lib/thread/atomic-impl.o lib/thread/hookstd.o lib/thread/sem.o lib/thread/common.o lib/thread/ncpu.o lib/thread/exit.o lib/thread/futex.o lib/thread/spawn.o
+ $pwd/muse/muse -o lib/thread/libthread.use -p thread lib/thread/mutex.use lib/thread/atomic.use lib/thread/hookstd.use lib/thread/sem.use lib/thread/common.use lib/thread/ncpu.use lib/thread/futex.use lib/thread/spawn.use
$pwd/6/6m -I lib/sys -I lib/std -I lib/bio -I lib/regex -I lib/thread mbld/opts.myr
$pwd/6/6m -I lib/sys -I lib/std -I lib/bio -I lib/regex -I lib/thread mbld/syssel.myr
$pwd/6/6m -I lib/sys -I lib/std -I lib/bio -I lib/regex -I lib/thread mbld/libs.myr
--- a/mk/bootstrap/bootstrap+NetBSD-amd64.sh
+++ b/mk/bootstrap/bootstrap+NetBSD-amd64.sh
@@ -27,6 +27,7 @@
ar -rcs lib/sys/libsys.a lib/sys/sys.o lib/sys/syserrno.o lib/sys/util.o lib/sys/systypes.o lib/sys/ifreq.o lib/sys/syscall.o
$pwd/muse/muse -o lib/sys/libsys.use -p sys lib/sys/sys.use lib/sys/syserrno.use lib/sys/systypes.use lib/sys/ifreq.use
$pwd/6/6m -I lib/sys lib/std/errno.myr
+ $pwd/6/6m -I lib/sys lib/std/pledge.myr
$pwd/6/6m -I lib/sys lib/std/types.myr
$pwd/6/6m -I lib/sys lib/std/strfind.myr
$pwd/6/6m -I lib/sys lib/std/memops.myr
@@ -104,8 +105,8 @@
$pwd/6/6m -I lib/sys lib/std/dial+posixy.myr
$pwd/6/6m -I lib/sys lib/std/listen+posixy.myr
$pwd/6/6m -I lib/sys lib/std/try.myr
- ar -rcs lib/std/libstd.a lib/std/resolve.o lib/std/result.o lib/std/try.o lib/std/ipparse.o lib/std/alloc.o lib/std/sleq.o lib/std/putint.o lib/std/sljoin.o lib/std/slpop.o lib/std/syswrap.o lib/std/getint.o lib/std/strsplit.o lib/std/slfill.o lib/std/writeall.o lib/std/fltfmt.o lib/std/hasprefix.o lib/std/swap.o lib/std/fmt.o lib/std/netaddr.o lib/std/varargs.o lib/std/diriter.o lib/std/getcwd.o lib/std/blat.o lib/std/optparse.o lib/std/pathjoin.o lib/std/readall.o lib/std/strjoin.o lib/std/threadhooks.o lib/std/sjlj.o lib/std/extremum.o lib/std/endian.o lib/std/rand.o lib/std/sldup.o lib/std/sleep.o lib/std/wait.o lib/std/introspect.o lib/std/fltparse.o lib/std/fndup.o lib/std/strbuf.o lib/std/strreplace.o lib/std/assert.o lib/std/spork.o lib/std/slpush.o lib/std/strstrip.o lib/std/htab.o lib/std/hashfuncs.o lib/std/slput.o lib/std/sjlj-impl.o lib/std/fltbits.o lib/std/striter.o lib/std/types.o lib/std/cstrconv.o lib/std/units.o lib/std/backtrace.o lib/std/syswrap-ss.o lib/std/die.o lib/std/mk.o lib/std/hassuffix.o lib/std/memops-impl.o lib/std/utf.o lib/std/slurp.o lib/std/dialparse.o lib/std/bytealloc.o lib/std/mktemp.o lib/std/consts.o lib/std/chomp.o lib/std/dir.o lib/std/search.o lib/std/memops.o lib/std/fmtfuncs.o lib/std/strfind.o lib/std/env.o lib/std/dirname.o lib/std/clear.o lib/std/listen.o lib/std/sort.o lib/std/cmp.o lib/std/now.o lib/std/intparse.o lib/std/traits.o lib/std/mkpath.o lib/std/option.o lib/std/dial.o lib/std/errno.o lib/std/chartype.o lib/std/bigint.o lib/std/bitset.o lib/std/getbp.o lib/std/slcp.o lib/std/execvp.o
- $pwd/muse/muse -o lib/std/libstd.use -p std lib/std/resolve.use lib/std/result.use lib/std/try.use lib/std/ipparse.use lib/std/alloc.use lib/std/sleq.use lib/std/putint.use lib/std/sljoin.use lib/std/slpop.use lib/std/syswrap.use lib/std/getint.use lib/std/strsplit.use lib/std/slfill.use lib/std/writeall.use lib/std/fltfmt.use lib/std/hasprefix.use lib/std/swap.use lib/std/fmt.use lib/std/netaddr.use lib/std/varargs.use lib/std/diriter.use lib/std/getcwd.use lib/std/blat.use lib/std/optparse.use lib/std/pathjoin.use lib/std/readall.use lib/std/strjoin.use lib/std/threadhooks.use lib/std/sjlj.use lib/std/extremum.use lib/std/endian.use lib/std/rand.use lib/std/sldup.use lib/std/sleep.use lib/std/wait.use lib/std/introspect.use lib/std/fltparse.use lib/std/fndup.use lib/std/strbuf.use lib/std/strreplace.use lib/std/assert.use lib/std/spork.use lib/std/slpush.use lib/std/strstrip.use lib/std/htab.use lib/std/hashfuncs.use lib/std/slput.use lib/std/fltbits.use lib/std/striter.use lib/std/types.use lib/std/cstrconv.use lib/std/units.use lib/std/backtrace.use lib/std/syswrap-ss.use lib/std/die.use lib/std/mk.use lib/std/hassuffix.use lib/std/utf.use lib/std/slurp.use lib/std/dialparse.use lib/std/bytealloc.use lib/std/mktemp.use lib/std/consts.use lib/std/chomp.use lib/std/dir.use lib/std/search.use lib/std/memops.use lib/std/fmtfuncs.use lib/std/strfind.use lib/std/env.use lib/std/dirname.use lib/std/clear.use lib/std/listen.use lib/std/sort.use lib/std/cmp.use lib/std/now.use lib/std/intparse.use lib/std/traits.use lib/std/mkpath.use lib/std/option.use lib/std/dial.use lib/std/errno.use lib/std/chartype.use lib/std/bigint.use lib/std/bitset.use lib/std/slcp.use lib/std/execvp.use
+ ar -rcs lib/std/libstd.a lib/std/resolve.o lib/std/result.o lib/std/try.o lib/std/ipparse.o lib/std/alloc.o lib/std/sleq.o lib/std/putint.o lib/std/sljoin.o lib/std/slpop.o lib/std/syswrap.o lib/std/getint.o lib/std/strsplit.o lib/std/slfill.o lib/std/writeall.o lib/std/fltfmt.o lib/std/hasprefix.o lib/std/swap.o lib/std/fmt.o lib/std/netaddr.o lib/std/varargs.o lib/std/diriter.o lib/std/getcwd.o lib/std/blat.o lib/std/optparse.o lib/std/pathjoin.o lib/std/readall.o lib/std/strjoin.o lib/std/threadhooks.o lib/std/sjlj.o lib/std/extremum.o lib/std/endian.o lib/std/rand.o lib/std/sldup.o lib/std/sleep.o lib/std/wait.o lib/std/introspect.o lib/std/fltparse.o lib/std/fndup.o lib/std/strbuf.o lib/std/strreplace.o lib/std/assert.o lib/std/spork.o lib/std/slpush.o lib/std/strstrip.o lib/std/htab.o lib/std/hashfuncs.o lib/std/slput.o lib/std/sjlj-impl.o lib/std/fltbits.o lib/std/striter.o lib/std/types.o lib/std/cstrconv.o lib/std/units.o lib/std/backtrace.o lib/std/syswrap-ss.o lib/std/die.o lib/std/mk.o lib/std/hassuffix.o lib/std/memops-impl.o lib/std/pledge.o lib/std/utf.o lib/std/slurp.o lib/std/dialparse.o lib/std/bytealloc.o lib/std/mktemp.o lib/std/consts.o lib/std/chomp.o lib/std/dir.o lib/std/search.o lib/std/memops.o lib/std/fmtfuncs.o lib/std/strfind.o lib/std/env.o lib/std/dirname.o lib/std/clear.o lib/std/listen.o lib/std/sort.o lib/std/cmp.o lib/std/now.o lib/std/intparse.o lib/std/traits.o lib/std/mkpath.o lib/std/option.o lib/std/dial.o lib/std/errno.o lib/std/chartype.o lib/std/bigint.o lib/std/bitset.o lib/std/getbp.o lib/std/slcp.o lib/std/execvp.o
+ $pwd/muse/muse -o lib/std/libstd.use -p std lib/std/resolve.use lib/std/result.use lib/std/try.use lib/std/ipparse.use lib/std/alloc.use lib/std/sleq.use lib/std/putint.use lib/std/sljoin.use lib/std/slpop.use lib/std/syswrap.use lib/std/getint.use lib/std/strsplit.use lib/std/slfill.use lib/std/writeall.use lib/std/fltfmt.use lib/std/hasprefix.use lib/std/swap.use lib/std/fmt.use lib/std/netaddr.use lib/std/varargs.use lib/std/diriter.use lib/std/getcwd.use lib/std/blat.use lib/std/optparse.use lib/std/pathjoin.use lib/std/readall.use lib/std/strjoin.use lib/std/threadhooks.use lib/std/sjlj.use lib/std/extremum.use lib/std/endian.use lib/std/rand.use lib/std/sldup.use lib/std/sleep.use lib/std/wait.use lib/std/introspect.use lib/std/fltparse.use lib/std/fndup.use lib/std/strbuf.use lib/std/strreplace.use lib/std/assert.use lib/std/spork.use lib/std/slpush.use lib/std/strstrip.use lib/std/htab.use lib/std/hashfuncs.use lib/std/slput.use lib/std/fltbits.use lib/std/striter.use lib/std/types.use lib/std/cstrconv.use lib/std/units.use lib/std/backtrace.use lib/std/syswrap-ss.use lib/std/die.use lib/std/mk.use lib/std/hassuffix.use lib/std/pledge.use lib/std/utf.use lib/std/slurp.use lib/std/dialparse.use lib/std/bytealloc.use lib/std/mktemp.use lib/std/consts.use lib/std/chomp.use lib/std/dir.use lib/std/search.use lib/std/memops.use lib/std/fmtfuncs.use lib/std/strfind.use lib/std/env.use lib/std/dirname.use lib/std/clear.use lib/std/listen.use lib/std/sort.use lib/std/cmp.use lib/std/now.use lib/std/intparse.use lib/std/traits.use lib/std/mkpath.use lib/std/option.use lib/std/dial.use lib/std/errno.use lib/std/chartype.use lib/std/bigint.use lib/std/bitset.use lib/std/slcp.use lib/std/execvp.use
$pwd/6/6m -I lib/sys -I lib/std -I lib/bio -I lib/regex -I lib/thread mbld/types.myr
$pwd/6/6m -I lib/sys -I lib/std lib/regex/types.myr
$pwd/6/6m -I lib/sys -I lib/std lib/regex/interp.myr
@@ -122,10 +123,11 @@
$pwd/6/6m -I lib/sys -I lib/std lib/thread/ncpu.myr
$pwd/6/6m -I lib/sys -I lib/std lib/thread/common.myr
$pwd/6/6m -I lib/sys -I lib/std lib/thread/atomic.myr
+ $pwd/6/6m -I lib/sys -I lib/std lib/thread/sem.myr
$pwd/6/6m -I lib/sys -I lib/std lib/thread/mutex.myr
$pwd/6/6m -I lib/sys -I lib/std lib/thread/hookstd.myr
- ar -rcs lib/thread/libthread.a lib/thread/mutex.o lib/thread/atomic.o lib/thread/atomic-impl.o lib/thread/hookstd.o lib/thread/common.o lib/thread/ncpu.o lib/thread/spawn.o
- $pwd/muse/muse -o lib/thread/libthread.use -p thread lib/thread/mutex.use lib/thread/atomic.use lib/thread/hookstd.use lib/thread/common.use lib/thread/ncpu.use lib/thread/spawn.use
+ ar -rcs lib/thread/libthread.a lib/thread/mutex.o lib/thread/atomic.o lib/thread/atomic-impl.o lib/thread/hookstd.o lib/thread/sem.o lib/thread/common.o lib/thread/ncpu.o lib/thread/spawn.o
+ $pwd/muse/muse -o lib/thread/libthread.use -p thread lib/thread/mutex.use lib/thread/atomic.use lib/thread/hookstd.use lib/thread/sem.use lib/thread/common.use lib/thread/ncpu.use lib/thread/spawn.use
$pwd/6/6m -I lib/sys -I lib/std -I lib/bio -I lib/regex -I lib/thread mbld/opts.myr
$pwd/6/6m -I lib/sys -I lib/std -I lib/bio -I lib/regex -I lib/thread mbld/syssel.myr
$pwd/6/6m -I lib/sys -I lib/std -I lib/bio -I lib/regex -I lib/thread mbld/libs.myr
--- a/mk/bootstrap/bootstrap+OpenBSD-amd64.sh
+++ b/mk/bootstrap/bootstrap+OpenBSD-amd64.sh
@@ -24,10 +24,11 @@
$pwd/6/6m lib/sys/systypes.myr
as -g -o lib/sys/util.o lib/sys/util+posixy-x64.s
$pwd/6/6m lib/sys/syserrno+openbsd.myr
- $pwd/6/6m lib/sys/sys+openbsd:6.2-x64.myr
+ $pwd/6/6m lib/sys/sys+openbsd:6.3-x64.myr
ar -rcs lib/sys/libsys.a lib/sys/sys.o lib/sys/syserrno.o lib/sys/util.o lib/sys/systypes.o lib/sys/ifreq.o lib/sys/syscall.o
$pwd/muse/muse -o lib/sys/libsys.use -p sys lib/sys/sys.use lib/sys/syserrno.use lib/sys/systypes.use lib/sys/ifreq.use
$pwd/6/6m -I lib/sys lib/std/errno.myr
+ $pwd/6/6m -I lib/sys lib/std/pledge+openbsd.myr
$pwd/6/6m -I lib/sys lib/std/types.myr
$pwd/6/6m -I lib/sys lib/std/strfind.myr
$pwd/6/6m -I lib/sys lib/std/memops.myr
@@ -105,8 +106,8 @@
$pwd/6/6m -I lib/sys lib/std/dial+posixy.myr
$pwd/6/6m -I lib/sys lib/std/listen+posixy.myr
$pwd/6/6m -I lib/sys lib/std/try.myr
- ar -rcs lib/std/libstd.a lib/std/resolve.o lib/std/result.o lib/std/try.o lib/std/ipparse.o lib/std/alloc.o lib/std/sleq.o lib/std/putint.o lib/std/sljoin.o lib/std/slpop.o lib/std/syswrap.o lib/std/getint.o lib/std/strsplit.o lib/std/slfill.o lib/std/writeall.o lib/std/fltfmt.o lib/std/hasprefix.o lib/std/swap.o lib/std/fmt.o lib/std/netaddr.o lib/std/varargs.o lib/std/diriter.o lib/std/getcwd.o lib/std/blat.o lib/std/optparse.o lib/std/pathjoin.o lib/std/readall.o lib/std/strjoin.o lib/std/threadhooks.o lib/std/sjlj.o lib/std/extremum.o lib/std/endian.o lib/std/rand.o lib/std/sldup.o lib/std/sleep.o lib/std/wait.o lib/std/introspect.o lib/std/fltparse.o lib/std/fndup.o lib/std/strbuf.o lib/std/strreplace.o lib/std/assert.o lib/std/spork.o lib/std/slpush.o lib/std/strstrip.o lib/std/htab.o lib/std/hashfuncs.o lib/std/slput.o lib/std/sjlj-impl.o lib/std/fltbits.o lib/std/striter.o lib/std/types.o lib/std/cstrconv.o lib/std/units.o lib/std/backtrace.o lib/std/syswrap-ss.o lib/std/die.o lib/std/mk.o lib/std/hassuffix.o lib/std/memops-impl.o lib/std/utf.o lib/std/slurp.o lib/std/dialparse.o lib/std/bytealloc.o lib/std/mktemp.o lib/std/consts.o lib/std/chomp.o lib/std/dir.o lib/std/search.o lib/std/memops.o lib/std/fmtfuncs.o lib/std/strfind.o lib/std/env.o lib/std/dirname.o lib/std/clear.o lib/std/listen.o lib/std/sort.o lib/std/cmp.o lib/std/now.o lib/std/intparse.o lib/std/traits.o lib/std/mkpath.o lib/std/option.o lib/std/dial.o lib/std/errno.o lib/std/chartype.o lib/std/bigint.o lib/std/bitset.o lib/std/getbp.o lib/std/slcp.o lib/std/execvp.o
- $pwd/muse/muse -o lib/std/libstd.use -p std lib/std/resolve.use lib/std/result.use lib/std/try.use lib/std/ipparse.use lib/std/alloc.use lib/std/sleq.use lib/std/putint.use lib/std/sljoin.use lib/std/slpop.use lib/std/syswrap.use lib/std/getint.use lib/std/strsplit.use lib/std/slfill.use lib/std/writeall.use lib/std/fltfmt.use lib/std/hasprefix.use lib/std/swap.use lib/std/fmt.use lib/std/netaddr.use lib/std/varargs.use lib/std/diriter.use lib/std/getcwd.use lib/std/blat.use lib/std/optparse.use lib/std/pathjoin.use lib/std/readall.use lib/std/strjoin.use lib/std/threadhooks.use lib/std/sjlj.use lib/std/extremum.use lib/std/endian.use lib/std/rand.use lib/std/sldup.use lib/std/sleep.use lib/std/wait.use lib/std/introspect.use lib/std/fltparse.use lib/std/fndup.use lib/std/strbuf.use lib/std/strreplace.use lib/std/assert.use lib/std/spork.use lib/std/slpush.use lib/std/strstrip.use lib/std/htab.use lib/std/hashfuncs.use lib/std/slput.use lib/std/fltbits.use lib/std/striter.use lib/std/types.use lib/std/cstrconv.use lib/std/units.use lib/std/backtrace.use lib/std/syswrap-ss.use lib/std/die.use lib/std/mk.use lib/std/hassuffix.use lib/std/utf.use lib/std/slurp.use lib/std/dialparse.use lib/std/bytealloc.use lib/std/mktemp.use lib/std/consts.use lib/std/chomp.use lib/std/dir.use lib/std/search.use lib/std/memops.use lib/std/fmtfuncs.use lib/std/strfind.use lib/std/env.use lib/std/dirname.use lib/std/clear.use lib/std/listen.use lib/std/sort.use lib/std/cmp.use lib/std/now.use lib/std/intparse.use lib/std/traits.use lib/std/mkpath.use lib/std/option.use lib/std/dial.use lib/std/errno.use lib/std/chartype.use lib/std/bigint.use lib/std/bitset.use lib/std/slcp.use lib/std/execvp.use
+ ar -rcs lib/std/libstd.a lib/std/resolve.o lib/std/result.o lib/std/try.o lib/std/ipparse.o lib/std/alloc.o lib/std/sleq.o lib/std/putint.o lib/std/sljoin.o lib/std/slpop.o lib/std/syswrap.o lib/std/getint.o lib/std/strsplit.o lib/std/slfill.o lib/std/writeall.o lib/std/fltfmt.o lib/std/hasprefix.o lib/std/swap.o lib/std/fmt.o lib/std/netaddr.o lib/std/varargs.o lib/std/diriter.o lib/std/getcwd.o lib/std/blat.o lib/std/optparse.o lib/std/pathjoin.o lib/std/readall.o lib/std/strjoin.o lib/std/threadhooks.o lib/std/sjlj.o lib/std/extremum.o lib/std/endian.o lib/std/rand.o lib/std/sldup.o lib/std/sleep.o lib/std/wait.o lib/std/introspect.o lib/std/fltparse.o lib/std/fndup.o lib/std/strbuf.o lib/std/strreplace.o lib/std/assert.o lib/std/spork.o lib/std/slpush.o lib/std/strstrip.o lib/std/htab.o lib/std/hashfuncs.o lib/std/slput.o lib/std/sjlj-impl.o lib/std/fltbits.o lib/std/striter.o lib/std/types.o lib/std/cstrconv.o lib/std/units.o lib/std/backtrace.o lib/std/syswrap-ss.o lib/std/die.o lib/std/mk.o lib/std/hassuffix.o lib/std/memops-impl.o lib/std/pledge.o lib/std/utf.o lib/std/slurp.o lib/std/dialparse.o lib/std/bytealloc.o lib/std/mktemp.o lib/std/consts.o lib/std/chomp.o lib/std/dir.o lib/std/search.o lib/std/memops.o lib/std/fmtfuncs.o lib/std/strfind.o lib/std/env.o lib/std/dirname.o lib/std/clear.o lib/std/listen.o lib/std/sort.o lib/std/cmp.o lib/std/now.o lib/std/intparse.o lib/std/traits.o lib/std/mkpath.o lib/std/option.o lib/std/dial.o lib/std/errno.o lib/std/chartype.o lib/std/bigint.o lib/std/bitset.o lib/std/getbp.o lib/std/slcp.o lib/std/execvp.o
+ $pwd/muse/muse -o lib/std/libstd.use -p std lib/std/resolve.use lib/std/result.use lib/std/try.use lib/std/ipparse.use lib/std/alloc.use lib/std/sleq.use lib/std/putint.use lib/std/sljoin.use lib/std/slpop.use lib/std/syswrap.use lib/std/getint.use lib/std/strsplit.use lib/std/slfill.use lib/std/writeall.use lib/std/fltfmt.use lib/std/hasprefix.use lib/std/swap.use lib/std/fmt.use lib/std/netaddr.use lib/std/varargs.use lib/std/diriter.use lib/std/getcwd.use lib/std/blat.use lib/std/optparse.use lib/std/pathjoin.use lib/std/readall.use lib/std/strjoin.use lib/std/threadhooks.use lib/std/sjlj.use lib/std/extremum.use lib/std/endian.use lib/std/rand.use lib/std/sldup.use lib/std/sleep.use lib/std/wait.use lib/std/introspect.use lib/std/fltparse.use lib/std/fndup.use lib/std/strbuf.use lib/std/strreplace.use lib/std/assert.use lib/std/spork.use lib/std/slpush.use lib/std/strstrip.use lib/std/htab.use lib/std/hashfuncs.use lib/std/slput.use lib/std/fltbits.use lib/std/striter.use lib/std/types.use lib/std/cstrconv.use lib/std/units.use lib/std/backtrace.use lib/std/syswrap-ss.use lib/std/die.use lib/std/mk.use lib/std/hassuffix.use lib/std/pledge.use lib/std/utf.use lib/std/slurp.use lib/std/dialparse.use lib/std/bytealloc.use lib/std/mktemp.use lib/std/consts.use lib/std/chomp.use lib/std/dir.use lib/std/search.use lib/std/memops.use lib/std/fmtfuncs.use lib/std/strfind.use lib/std/env.use lib/std/dirname.use lib/std/clear.use lib/std/listen.use lib/std/sort.use lib/std/cmp.use lib/std/now.use lib/std/intparse.use lib/std/traits.use lib/std/mkpath.use lib/std/option.use lib/std/dial.use lib/std/errno.use lib/std/chartype.use lib/std/bigint.use lib/std/bitset.use lib/std/slcp.use lib/std/execvp.use
$pwd/6/6m -I lib/sys -I lib/std -I lib/bio -I lib/regex -I lib/thread mbld/types.myr
$pwd/6/6m -I lib/sys -I lib/std lib/regex/types.myr
$pwd/6/6m -I lib/sys -I lib/std lib/regex/interp.myr
@@ -123,10 +124,12 @@
$pwd/6/6m -I lib/sys -I lib/std lib/thread/ncpu+openbsd.myr
$pwd/6/6m -I lib/sys -I lib/std lib/thread/common.myr
$pwd/6/6m -I lib/sys -I lib/std lib/thread/atomic.myr
- $pwd/6/6m -I lib/sys -I lib/std lib/thread/mutex+openbsd:6.2.myr
+ $pwd/6/6m -I lib/sys -I lib/std lib/thread/futex+openbsd:6.2.myr
+ $pwd/6/6m -I lib/sys -I lib/std lib/thread/sem.myr
+ $pwd/6/6m -I lib/sys -I lib/std lib/thread/mutex.myr
$pwd/6/6m -I lib/sys -I lib/std lib/thread/hookstd.myr
- ar -rcs lib/thread/libthread.a lib/thread/mutex.o lib/thread/atomic.o lib/thread/atomic-impl.o lib/thread/hookstd.o lib/thread/common.o lib/thread/ncpu.o lib/thread/exit.o lib/thread/spawn.o
- $pwd/muse/muse -o lib/thread/libthread.use -p thread lib/thread/mutex.use lib/thread/atomic.use lib/thread/hookstd.use lib/thread/common.use lib/thread/ncpu.use lib/thread/spawn.use
+ ar -rcs lib/thread/libthread.a lib/thread/mutex.o lib/thread/atomic.o lib/thread/atomic-impl.o lib/thread/hookstd.o lib/thread/sem.o lib/thread/common.o lib/thread/ncpu.o lib/thread/exit.o lib/thread/futex.o lib/thread/spawn.o
+ $pwd/muse/muse -o lib/thread/libthread.use -p thread lib/thread/mutex.use lib/thread/atomic.use lib/thread/hookstd.use lib/thread/sem.use lib/thread/common.use lib/thread/ncpu.use lib/thread/futex.use lib/thread/spawn.use
$pwd/6/6m -I lib/sys -I lib/std -I lib/bio -I lib/regex -I lib/thread mbld/opts.myr
$pwd/6/6m -I lib/sys -I lib/std -I lib/bio -I lib/regex -I lib/thread mbld/syssel.myr
$pwd/6/6m -I lib/sys -I lib/std -I lib/bio -I lib/regex -I lib/thread mbld/libs.myr
--- a/mk/bootstrap/bootstrap+Plan9-amd64.sh
+++ b/mk/bootstrap/bootstrap+Plan9-amd64.sh
@@ -27,6 +27,7 @@
$pwd/muse/6.out -o lib/sys/libsys.use -p sys lib/sys/sys.use lib/sys/systypes.use lib/sys/ifreq.use
6a -o lib/sys/util.6 lib/sys/util+plan9-x64.s
ar u lib/sys/libsys.a lib/sys/sys.6 lib/sys/util.6 lib/sys/systypes.6 lib/sys/ifreq.6 lib/sys/syscall.6
+ $pwd/6/6.out -I lib/sys lib/std/pledge.myr
$pwd/6/6.out -I lib/sys lib/std/types.myr
$pwd/6/6.out -I lib/sys lib/std/strfind.myr
$pwd/6/6.out -I lib/sys lib/std/memops.myr
@@ -102,8 +103,8 @@
$pwd/6/6.out -I lib/sys lib/std/ipparse.myr
$pwd/6/6.out -I lib/sys lib/std/fmtfuncs.myr
$pwd/6/6.out -I lib/sys lib/std/try.myr
- ar u lib/std/libstd.a lib/std/resolve.6 lib/std/result.6 lib/std/try.6 lib/std/ipparse.6 lib/std/alloc.6 lib/std/sleq.6 lib/std/putint.6 lib/std/sljoin.6 lib/std/slpop.6 lib/std/syswrap.6 lib/std/getint.6 lib/std/strsplit.6 lib/std/slfill.6 lib/std/writeall.6 lib/std/fltfmt.6 lib/std/hasprefix.6 lib/std/swap.6 lib/std/fmt.6 lib/std/netaddr.6 lib/std/varargs.6 lib/std/diriter.6 lib/std/getcwd.6 lib/std/blat.6 lib/std/optparse.6 lib/std/pathjoin.6 lib/std/readall.6 lib/std/strjoin.6 lib/std/threadhooks.6 lib/std/sjlj.6 lib/std/extremum.6 lib/std/endian.6 lib/std/rand.6 lib/std/sldup.6 lib/std/sleep.6 lib/std/wait.6 lib/std/introspect.6 lib/std/fltparse.6 lib/std/fndup.6 lib/std/strbuf.6 lib/std/strreplace.6 lib/std/assert.6 lib/std/spork.6 lib/std/slpush.6 lib/std/strstrip.6 lib/std/htab.6 lib/std/hashfuncs.6 lib/std/slput.6 lib/std/sjlj-impl.6 lib/std/fltbits.6 lib/std/striter.6 lib/std/types.6 lib/std/cstrconv.6 lib/std/units.6 lib/std/backtrace.6 lib/std/syswrap-ss.6 lib/std/die.6 lib/std/mk.6 lib/std/hassuffix.6 lib/std/memops-impl.6 lib/std/utf.6 lib/std/slurp.6 lib/std/bytealloc.6 lib/std/mktemp.6 lib/std/consts.6 lib/std/chomp.6 lib/std/dir.6 lib/std/search.6 lib/std/memops.6 lib/std/fmtfuncs.6 lib/std/strfind.6 lib/std/env.6 lib/std/dirname.6 lib/std/clear.6 lib/std/listen.6 lib/std/sort.6 lib/std/cmp.6 lib/std/now.6 lib/std/intparse.6 lib/std/traits.6 lib/std/mkpath.6 lib/std/option.6 lib/std/dial.6 lib/std/errno.6 lib/std/chartype.6 lib/std/bigint.6 lib/std/bitset.6 lib/std/getbp.6 lib/std/slcp.6 lib/std/execvp.6
- $pwd/muse/6.out -o lib/std/libstd.use -p std lib/std/resolve.use lib/std/result.use lib/std/try.use lib/std/ipparse.use lib/std/alloc.use lib/std/sleq.use lib/std/putint.use lib/std/sljoin.use lib/std/slpop.use lib/std/syswrap.use lib/std/getint.use lib/std/strsplit.use lib/std/slfill.use lib/std/writeall.use lib/std/fltfmt.use lib/std/hasprefix.use lib/std/swap.use lib/std/fmt.use lib/std/netaddr.use lib/std/varargs.use lib/std/diriter.use lib/std/getcwd.use lib/std/blat.use lib/std/optparse.use lib/std/pathjoin.use lib/std/readall.use lib/std/strjoin.use lib/std/threadhooks.use lib/std/sjlj.use lib/std/extremum.use lib/std/endian.use lib/std/rand.use lib/std/sldup.use lib/std/sleep.use lib/std/wait.use lib/std/introspect.use lib/std/fltparse.use lib/std/fndup.use lib/std/strbuf.use lib/std/strreplace.use lib/std/assert.use lib/std/spork.use lib/std/slpush.use lib/std/strstrip.use lib/std/htab.use lib/std/hashfuncs.use lib/std/slput.use lib/std/fltbits.use lib/std/striter.use lib/std/types.use lib/std/cstrconv.use lib/std/units.use lib/std/backtrace.use lib/std/syswrap-ss.use lib/std/die.use lib/std/mk.use lib/std/hassuffix.use lib/std/utf.use lib/std/slurp.use lib/std/bytealloc.use lib/std/mktemp.use lib/std/consts.use lib/std/chomp.use lib/std/dir.use lib/std/search.use lib/std/memops.use lib/std/fmtfuncs.use lib/std/strfind.use lib/std/env.use lib/std/dirname.use lib/std/clear.use lib/std/listen.use lib/std/sort.use lib/std/cmp.use lib/std/now.use lib/std/intparse.use lib/std/traits.use lib/std/mkpath.use lib/std/option.use lib/std/dial.use lib/std/errno.use lib/std/chartype.use lib/std/bigint.use lib/std/bitset.use lib/std/slcp.use lib/std/execvp.use
+ ar u lib/std/libstd.a lib/std/resolve.6 lib/std/result.6 lib/std/try.6 lib/std/ipparse.6 lib/std/alloc.6 lib/std/sleq.6 lib/std/putint.6 lib/std/sljoin.6 lib/std/slpop.6 lib/std/syswrap.6 lib/std/getint.6 lib/std/strsplit.6 lib/std/slfill.6 lib/std/writeall.6 lib/std/fltfmt.6 lib/std/hasprefix.6 lib/std/swap.6 lib/std/fmt.6 lib/std/netaddr.6 lib/std/varargs.6 lib/std/diriter.6 lib/std/getcwd.6 lib/std/blat.6 lib/std/optparse.6 lib/std/pathjoin.6 lib/std/readall.6 lib/std/strjoin.6 lib/std/threadhooks.6 lib/std/sjlj.6 lib/std/extremum.6 lib/std/endian.6 lib/std/rand.6 lib/std/sldup.6 lib/std/sleep.6 lib/std/wait.6 lib/std/introspect.6 lib/std/fltparse.6 lib/std/fndup.6 lib/std/strbuf.6 lib/std/strreplace.6 lib/std/assert.6 lib/std/spork.6 lib/std/slpush.6 lib/std/strstrip.6 lib/std/htab.6 lib/std/hashfuncs.6 lib/std/slput.6 lib/std/sjlj-impl.6 lib/std/fltbits.6 lib/std/striter.6 lib/std/types.6 lib/std/cstrconv.6 lib/std/units.6 lib/std/backtrace.6 lib/std/syswrap-ss.6 lib/std/die.6 lib/std/mk.6 lib/std/hassuffix.6 lib/std/memops-impl.6 lib/std/pledge.6 lib/std/utf.6 lib/std/slurp.6 lib/std/bytealloc.6 lib/std/mktemp.6 lib/std/consts.6 lib/std/chomp.6 lib/std/dir.6 lib/std/search.6 lib/std/memops.6 lib/std/fmtfuncs.6 lib/std/strfind.6 lib/std/env.6 lib/std/dirname.6 lib/std/clear.6 lib/std/listen.6 lib/std/sort.6 lib/std/cmp.6 lib/std/now.6 lib/std/intparse.6 lib/std/traits.6 lib/std/mkpath.6 lib/std/option.6 lib/std/dial.6 lib/std/errno.6 lib/std/chartype.6 lib/std/bigint.6 lib/std/bitset.6 lib/std/getbp.6 lib/std/slcp.6 lib/std/execvp.6
+ $pwd/muse/6.out -o lib/std/libstd.use -p std lib/std/resolve.use lib/std/result.use lib/std/try.use lib/std/ipparse.use lib/std/alloc.use lib/std/sleq.use lib/std/putint.use lib/std/sljoin.use lib/std/slpop.use lib/std/syswrap.use lib/std/getint.use lib/std/strsplit.use lib/std/slfill.use lib/std/writeall.use lib/std/fltfmt.use lib/std/hasprefix.use lib/std/swap.use lib/std/fmt.use lib/std/netaddr.use lib/std/varargs.use lib/std/diriter.use lib/std/getcwd.use lib/std/blat.use lib/std/optparse.use lib/std/pathjoin.use lib/std/readall.use lib/std/strjoin.use lib/std/threadhooks.use lib/std/sjlj.use lib/std/extremum.use lib/std/endian.use lib/std/rand.use lib/std/sldup.use lib/std/sleep.use lib/std/wait.use lib/std/introspect.use lib/std/fltparse.use lib/std/fndup.use lib/std/strbuf.use lib/std/strreplace.use lib/std/assert.use lib/std/spork.use lib/std/slpush.use lib/std/strstrip.use lib/std/htab.use lib/std/hashfuncs.use lib/std/slput.use lib/std/fltbits.use lib/std/striter.use lib/std/types.use lib/std/cstrconv.use lib/std/units.use lib/std/backtrace.use lib/std/syswrap-ss.use lib/std/die.use lib/std/mk.use lib/std/hassuffix.use lib/std/pledge.use lib/std/utf.use lib/std/slurp.use lib/std/bytealloc.use lib/std/mktemp.use lib/std/consts.use lib/std/chomp.use lib/std/dir.use lib/std/search.use lib/std/memops.use lib/std/fmtfuncs.use lib/std/strfind.use lib/std/env.use lib/std/dirname.use lib/std/clear.use lib/std/listen.use lib/std/sort.use lib/std/cmp.use lib/std/now.use lib/std/intparse.use lib/std/traits.use lib/std/mkpath.use lib/std/option.use lib/std/dial.use lib/std/errno.use lib/std/chartype.use lib/std/bigint.use lib/std/bitset.use lib/std/slcp.use lib/std/execvp.use
$pwd/6/6.out -I lib/sys -I lib/std -I lib/bio -I lib/regex -I lib/thread mbld/types.myr
$pwd/6/6.out -I lib/sys -I lib/std lib/regex/types.myr
$pwd/6/6.out -I lib/sys -I lib/std lib/regex/interp.myr
@@ -120,10 +121,11 @@
$pwd/6/6.out -I lib/sys -I lib/std lib/thread/ncpu+plan9.myr
$pwd/6/6.out -I lib/sys -I lib/std lib/thread/common.myr
$pwd/6/6.out -I lib/sys -I lib/std lib/thread/atomic.myr
+ $pwd/6/6.out -I lib/sys -I lib/std lib/thread/sem+plan9.myr
$pwd/6/6.out -I lib/sys -I lib/std lib/thread/mutex+plan9.myr
$pwd/6/6.out -I lib/sys -I lib/std lib/thread/hookstd.myr
- ar u lib/thread/libthread.a lib/thread/mutex.6 lib/thread/atomic.6 lib/thread/atomic-impl.6 lib/thread/hookstd.6 lib/thread/common.6 lib/thread/ncpu.6 lib/thread/spawn.6
- $pwd/muse/6.out -o lib/thread/libthread.use -p thread lib/thread/mutex.use lib/thread/atomic.use lib/thread/hookstd.use lib/thread/common.use lib/thread/ncpu.use lib/thread/spawn.use
+ ar u lib/thread/libthread.a lib/thread/mutex.6 lib/thread/atomic.6 lib/thread/atomic-impl.6 lib/thread/hookstd.6 lib/thread/sem.6 lib/thread/common.6 lib/thread/ncpu.6 lib/thread/spawn.6
+ $pwd/muse/6.out -o lib/thread/libthread.use -p thread lib/thread/mutex.use lib/thread/atomic.use lib/thread/hookstd.use lib/thread/sem.use lib/thread/common.use lib/thread/ncpu.use lib/thread/spawn.use
$pwd/6/6.out -I lib/sys -I lib/std -I lib/bio -I lib/regex -I lib/thread mbld/opts.myr
$pwd/6/6.out -I lib/sys -I lib/std -I lib/bio -I lib/regex -I lib/thread mbld/syssel.myr
$pwd/6/6.out -I lib/sys -I lib/std -I lib/bio -I lib/regex -I lib/thread mbld/libs.myr
--- a/mkfile
+++ b/mkfile
@@ -47,6 +47,8 @@
mk $MKFLAGS
}
ape/psh mk/bootstrap/bootstrap+Plan9-amd64.sh
+ MBLD=mbld/mbld ape/psh ./mbldwrap.sh
+ obj/mbld/mbld -o '' clean
uninstall:V: $SUB config.h
for(dir in $SUB)@{
--- a/parse/gram.y
+++ b/parse/gram.y
@@ -35,6 +35,7 @@
static void setattrs(Node *dcl, char **attrs, size_t nattrs);
static void setwith(Type *ty, Traitspec **spec, size_t nspec);
static void setupinit(Node *n);
+static void addinit(Node *blk, Node *dcl);
%}
@@ -1064,19 +1065,11 @@
blkbody : decl {
size_t i;
- Node *n, *d, *u;
$$ = mkblock($1.loc, mkstab(0));
for (i = 0; i < $1.nn; i++) {
- d = $1.nl[i];
- putdcl($$->block.scope, d);
- if (!d->decl.init) {
- n = mkexpr(d->loc, Ovar, d->decl.name, NULL);
- u = mkexpr(n->loc, Oundef, n, NULL);
- n->expr.did = d->decl.did;
- lappend(&$$->block.stmts, &$$->block.nstmts, u);
- }
- lappend(&$$->block.stmts, &$$->block.nstmts, d);
+ putdcl($$->block.scope, $1.nl[i]);
+ addinit($$, $1.nl[i]);
}
}
| stmt {
@@ -1098,7 +1091,7 @@
size_t i;
for (i = 0; i < $3.nn; i++){
putdcl($$->block.scope, $3.nl[i]);
- lappend(&$1->block.stmts, &$1->block.nstmts, $3.nl[i]);
+ addinit($$, $3.nl[i]);
}
}
| blkbody Tendln tydef {
@@ -1117,6 +1110,19 @@
;
%%
+
+static void
+addinit(Node *blk, Node *dcl)
+{
+ Node *n, *u;
+ if (!dcl->decl.init) {
+ n = mkexpr(dcl->loc, Ovar, dcl->decl.name, NULL);
+ u = mkexpr(n->loc, Oundef, n, NULL);
+ n->expr.did = dcl->decl.did;
+ lappend(&blk->block.stmts, &blk->block.nstmts, u);
+ }
+ lappend(&blk->block.stmts, &blk->block.nstmts, dcl);
+}
static void
setupinit(Node *n)
--- a/parse/infer.c
+++ b/parse/infer.c
@@ -2108,7 +2108,7 @@
t = type(n->iterstmt.seq);
constrain(n, t, traittab[Tciter]);
b = basetype(t);
- if (b)
+ if (b && t->type != Typtr)
unify(n, e, b);
else
t->seqaux = e;
--- a/parse/parse.h
+++ b/parse/parse.h
@@ -1,4 +1,4 @@
-#define Abiversion 18
+#define Abiversion 19
typedef struct Srcloc Srcloc;
typedef struct Tysubst Tysubst;
--- a/parse/type.c
+++ b/parse/type.c
@@ -236,8 +236,8 @@
bindtype(t->env, param[i]);
if (!base->env)
base->env = t->env;
- else
- assert(base->env->super == t->env);
+ else
+ assert(base->env->super == t->env || base->narg > 0);
return t;
}
--- /dev/null
+++ b/test/closurerec.myr
@@ -1,0 +1,15 @@
+use std
+
+const main = {
+ const fib = {n
+ if n <= 0
+ -> 0
+ elif n == 1
+ -> 1
+ else
+ -> fib(n - 1) + fib(n - 2)
+ ;;
+ }
+ std.exit(fib(8))
+}
+
--- a/test/fncast.myr
+++ b/test/fncast.myr
@@ -6,11 +6,11 @@
fn = {
}
+ ptr = (fn : byte#)
+ ptr = (envfn : byte#)
envfn = {
ptr = ptr
}
- ptr = (fn : byte#)
- ptr = (envfn : byte#)
std.put("ok\n")
}
--- a/test/matchptr.myr
+++ b/test/matchptr.myr
@@ -10,6 +10,7 @@
var y : loop
var ok
+ ok = false
x = `std.Some &(`std.Some 123)
match x
| `std.Some &(`std.None): std.put("failed\n")
--- a/test/overlappingif.myr
+++ b/test/overlappingif.myr
@@ -7,6 +7,7 @@
v = 0xff
+ x = 42
if v & 0xff00 != 0
x = 1
elif v & 0xfff0 != 0
--- a/test/tests
+++ b/test/tests
@@ -64,6 +64,7 @@
B nestfn E 42
B foldidx P 123,456
B closure P 111555333666
+B closurerec E 21
B fncast P ok
B loop P 0123401236789
B subrangefor P 12